如何在Qt中为QTextBrowser设置字符编码?

时间:2015-04-15 04:36:27

标签: qt qtextbrowser

我有一个QTextBrowser,其中我在Linux中使用QProcess显示外部二进制文件的输出内容。一切都很好!但是大部分内容都只是盒子,所以现在缺少UTF-8的字符编码,我需要告诉QTextBrowser。有没有办法呢?

代码:

....
processRAM = new QProcess();
processRAM->start("memtester", QStringList() << "1" << "1");
.....
connect(processRAM, SIGNAL(readyRead()),this,SLOT(displayRAMTestOutput()));
......
void MainWindow::displayRAMTestOutput()
{
  textBrowserData->append(Qtring::fromUtf8(processRAM->readAllStandardOutput())));
}  

我添加了编码UTF-8的字符,但我只看到了框。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式设置QTextBrowser的内容:

textBrowser->setText(QString::fromUtf8(processOutput)));

编辑: “盒子”的问题与UTF8编码无关。您看到的符号是memtester在向控制台显示文本时使用的控制字符。如果您不想在textBrowser中显示此类字符,可以过滤输出:

while(!processRAM->atEnd())
{
    QString out = QString::fromAscii(processRAM->readLine());
    if(!out.contains("\b"))
        textBrowser->append(out);}
}

\b表示退格,它在textBrowser中显示为框。