Я пытаюсь сделать терминал в форме, я смог реализовать и запустить процессы, которые отображают их выполнение в текстовом поле на форме. небольшая часть кода:
void Process::readResult(){
emit lineRead(process->readAllStandardOutput());
emit lineRead(process->readAllStandardError());
}
void Process::writeQString(QString str) {
if (process->state() == QProcess::ProcessState::Running)
process->write(str.toUtf8());
}
дисплей:
void MainWindow::getProcessLine(QByteArray output)
{
QTextCodec *codec = QTextCodec::codecForName("cp-866");
QString pStr = codec->toUnicode(output.data());
ui->plainTextEdit->appendPlainText(pStr.trimmed());
}
Соответственно, если я использую команды, которые используют кодировку ANSI для результата, я получаю все эти символы кодирования, смешанные с основной текст в текстовом поле.
[33m Device #1: Not a native Intel runtime..[0m [33m You can use but do not report related errors.[0m Started: Tue [2K Stopped: Tue [31mNo devices found/left.[0m
символов, таких как: [0m [33m
и т. д. Подскажите пожалуйста, как исключить эти символы из вывода? Или можно отобразить вывод с этой кодировкой в текстовом поле? Спасибо.