THE*_*TOR 2 console user-interface qt
我正在围绕控制台应用程序构建GUI.我希望能够单击按钮来运行控制台应用程序并在GUI本身内显示控制台输出.我怎么能做到这一点?我在Linux工作.
您也可以尝试QProcess.它提供了一个Qt接口来启动外部进程,读取它们的I/O并等待或不等待它们完成.
出于您的目的,听起来您希望过程以异步方式运行,因此代码可能如下所示:
myprocessstarter.h:
#include <QObject>
#include <QProcess>
#include <QDebug>
class MyProcessStarter : public QObject
{
Q_OBJECT
public:
MyProcessStarter() : QObject() {};
void StartProcess();
private slots:
void readStandardOutput();
private:
QProcess *myProcess;
};
Run Code Online (Sandbox Code Playgroud)
main.cpp中:
#include "myprocessstarter.h"
void MyProcessStarter::StartProcess()
{
QString program = "dir";
QStringList arguments;
// Add any arguments you want to be passed
myProcess = new QProcess(this);
connect(myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput()));
myProcess->start(program, arguments);
}
void MyProcessStarter::readStandardOutput()
{
QByteArray processOutput;
processOutput = myProcess->readAllStandardOutput();
qDebug() << "Output was " << QString(processOutput);
}
void main(int argc, char** argv)
{
MyProcessStarter s;
s.StartProcess();
}
Run Code Online (Sandbox Code Playgroud)