Как установить кодировку символов для QTextBrowser в Qt?

Вопрос: У меня есть QTextBrowser в котором я отображаю выходные данные внешнего двоичного кода с помощью QProcess в Linux. Все хорошо! Но большая часть содержимого - это только ящики, поэтому теперь он не кодирует кодировку UTF-8, и мне нужно сообщить об этом в QTextBrowser. Есть ли способ для этого? Код: .... processRAM = new QProcess();

Вопрос:

У меня есть QTextBrowser в котором я отображаю выходные данные внешнего двоичного кода с помощью QProcess в Linux. Все хорошо! Но большая часть содержимого – это только ящики, поэтому теперь он не кодирует кодировку 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, и все же вижу только ящики. Что мне здесь не хватает?

Лучший ответ:

Вы можете установить содержимое QTextBrowser таким образом:

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

EDIT: Ваша проблема с “ящиками” не связана с кодировкой UTF8. Символы, которые вы видите, являются управляющими символами, которые используются memtester при отображении текста для консоли. Если вы не хотите отображать такие символы в textBrowser, вы можете отфильтровать вывод:

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

b означает обратное пространство, которое отображается в тексте в виде блоков.

Оцените статью
Добавить комментарий