我正在编写avrdude帮助程序,该程序有助于调用一些命令行参数。在控制台中发出avrdude命令时,屏幕上将显示一系列输出结果。无论如何,有没有要抓取该输出并将其显示在GUI窗口中(如果重要的话,请使用Qt)?

我想我可以将输出重定向到一个文件(avrdude -args > textFile.txt),该文件可以在运行时读取并显示在屏幕上(如果没有其他操作)。

只是想知道是否还有其他替代方法可以捕获此输出。

最佳答案

我认为关键类是QProcessQLabel或一些类似的GUI小部件,如下所示:

QProcess avrDudeProcess;
avrDudeProcess.setProcessChannelMode(QProcess::MergedChannels);
avrDudeProcess.start("avrdude", optionList);
if (!avrDudeProcess.waitForStarted())
    return false;

if (!avrDudeProcess.waitForFinished())
    return false;

QByteArray output = avrDudeProcess.readAll();
myLabel.setText(output);

09-05 22:58