我正在编写avrdude
帮助程序,该程序有助于调用一些命令行参数。在控制台中发出avrdude命令时,屏幕上将显示一系列输出结果。无论如何,有没有要抓取该输出并将其显示在GUI窗口中(如果重要的话,请使用Qt)?
我想我可以将输出重定向到一个文件(avrdude -args > textFile.txt
),该文件可以在运行时读取并显示在屏幕上(如果没有其他操作)。
只是想知道是否还有其他替代方法可以捕获此输出。
最佳答案
我认为关键类是QProcess和QLabel或一些类似的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);