我想将数据写入文件。我使用C ++的iomanip函数格式化数据,setw设置文本字段的宽度。源代码如下:
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”中的格式看起来不错。但是,当我尝试读取此文件并在QT的QTextEdit中显示时,格式化变为混乱。
使用“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();
}
提前致谢。
答案 0 :(得分:0)
感谢Joachim Pileborg。通过设置固定宽度字体解决。此解决方案仅适用于QT 5.2及更高版本。
代码:
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);