我有一個QProcess,我想在標籤中輸出響應。首先,這裏是我曾嘗試:輸出QProcess readAll對標籤的響應
QProcess *proc = new QProcess();
proc->setProcessChannelMode(QProcess::MergedChannels);
proc->start(cmdLineRequest.toUtf8().constData()); // cmdLineRequest is omitted
if (!proc->waitForFinished()) {
qDebug() << "Make failed:" << proc->errorString();
ui->topBarcode->setText(QString(proc->errorString()));
} else {
qDebug() << "Make output:" << proc->readAll();
ui->topBarcode->setText(QString(proc->readAll()) + "asdf");
}
PROC-> readAll()是一個QByteArray中和的setText接受的QString。從我讀過的內容來看,我應該能夠將QByteArray轉換爲QString,但不管它如何工作。我也試圖轉換PROC-> readAll()與QString類
->setText(QString::fromUtf8(proc->readAll())) // not working
->setText(QString::fromLatin1(proc->readAll())) // not working
->setText(QString::fromLocal8Bit(proc->readAll())) // not working
... etc ...
這似乎不可思議,因爲我使用setPixmap將圖片添加到標籤在幾乎相同的事情(的QPixmap :: fromImage(圖) )
任何幫助表示感謝,謝謝。
更新:
如果我認爲上面的代碼塊屬於,我可以看到文本添加到標籤的方法的結束前添加QMessageBox提示。但是,當我關閉QMessageBox時,文本消失。我是用proc-> readAll()給這個標籤賦予一個地址位置,或者是如何產生這種行爲?謝謝。
當你說出「這是行不通的」,你是什麼意思?它不會編譯,或者正在獲得與您所期望的不同的輸出?使用字符串構造函數從字節數組創建QString是完全合法的:QString(const QByteArray&ba) – TheDarkKnight
對不起,如果我不清楚。它編譯好,只是文本不附加到標籤。 – Attaque