2015-10-23 2 views
1

Я хочу записать данные в файл. Я форматирую эти данные с помощью функции iomanip на C++, setw для установки ширины текстового поля. Исходный код приведен ниже:C++ Текстовое форматирование с использованием setw не работает с QT's 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; 

Форматирование выглядит хорошо в текстовом редакторе Linux «gedit». Но, когда я пытаюсь прочитать этот файл и показать в QTextEdit QT, форматирование становится Mess.

Ширина, которая была установлена ​​с использованием функции «C++» setw, не отображается должным образом. Почему это так ? Нужно ли делать некоторую конфигурацию для QTextEdit?

TextEdit устанавливается как:

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

кодекса читать файл:

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(); 
    } 

Спасибо заранее.

+4

фиксированной ширины по сравнению с переменной шириной проблем со шрифтами? –

+0

Да. Благодарю. Решено использовать следующий код: const QFont fixedFont = QFontDatabase :: systemFont (QFontDatabase :: FixedFont); – ashwin1103

ответ

0

Thanks Joachim Pileborg. Разрешено установкой шрифта с фиксированной шириной. Это решение работает только с QT 5.2 и выше.

Код:

const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont); 
Смежные вопросы