2015-10-23 1 views
1

Je veux écrire une donnée dans un fichier. Je suis en train de formater ces données en utilisant la fonction iomanip de C++, setw pour définir la largeur du champ de texte. Le code source est le suivant:La mise en forme de texte C++ à l'aide de setw ne fonctionne pas avec QTextEdit

std::ofstream dataFile; 
dataFile.open(m_fileAbsolutePath.toStdString().c_str(),std::fstream::out); 
dataFile << "|"; 
SET_WIDTH(dataFile,DEV_NAME_FIELD); 
dataFile << std::right <<TS_HEADER; 

La mise en forme est bonne dans Linux Text Editor "gedit". Mais, quand j'essaye de lire ce dossier et de l'afficher dans QTextEdit de QT, le formatage devient Mess.

La largeur définie à l'aide de la fonction "setw" de C++ n'apparaît pas correctement. Pourquoi est-ce vrai? Avons-nous besoin de faire une configuration pour QTextEdit?

TextEdit est défini comme:

ui->textEdit->setLineWrapMode(QTextEdit::NoWrap); 

Code pour lire le fichier:

std::ifstream dataFile (m_filePath.toStdString().c_str(), std::ifstream::in); 

    if(dataFile.is_open()){ 

     while (!dataFile.eof()) { 

      char line[1024] = {0}; 
      dataFile.getline(line,1024); 
      int numberOfBytes = dataFile.gcount(); 
      if(0 < numberOfBytes){ 
       QString result(line); 
       Q_EMIT resultReady(result); 
      } 
     } 
     dataFile.close(); 
    } 

Merci à l'avance.

+4

-largeur fixe par rapport à des problèmes de police de largeur variable? –

+0

Oui. Merci. Résolus en utilisant le code suivant: const QFont fixedFont = QFontDatabase :: systemFont (QFontDatabase :: FixedFont); – ashwin1103

Répondre

0

Merci Joachim Pileborg. Résolu en définissant la police Largeur fixe. Cette solution fonctionne uniquement avec QT 5.2 et supérieur.

code:

const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);