gpt4 book ai didi

使用 setw 的 C++ 文本格式不适用于 QT QTextEdit

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:03 26 4
gpt4 key购买 nike

我想将数据写入文件。我正在使用 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();
}

提前致谢。

最佳答案

感谢 Joachim Pileborg。通过设置固定宽度字体解决。此解决方案仅适用于 QT 5.2 及更高版本。

代码:

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

关于使用 setw 的 C++ 文本格式不适用于 QT QTextEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com