1

Linuxで使用してQTextBrowser、外部バイナリの出力内容を表示するがあります。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())));
}  

char エンコーディング UTF-8 を追加しましたが、まだボックスしか表示されません。ここで何が欠けていますか?

4

1 に答える 1

2

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

\btextBrowser にボックスとして表示されるバックスペースを意味します。

于 2015-04-15T05:28:31.877 に答える