大概的思路如代码如下: [C++] 纯文本查看 复制代码 pro = new QProcess(); pro->setProgram(fname); pro->setWorkingDirectory(globals->gAppDataPath+"\\temp\\"); pro->setNativeArguments("命令行参数");//如果有命令行参数,可以这样 pro->setStandardInputFile(qApp->applicationDirPath().append("\\CMDRedirect.lst"));//如果有标准输入可以这样 connect(pro, SIGNAL(readyReadStandardOutput()), this, SLOT(on_cmdOutput())); connect(pro, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(on_proc_finished(int, QProcess::ExitStatus))); pro->start(); bOK = pro->waitForStarted(1000); pro->waitForFinished(2000); //可以等2秒完成。也可以不等 void YourClass::on_cmdOutput(){ QString s(pro->readAllStandardOutput()); ui->textEditor->append(s); } |
1. 一般人用GUI调用Console,都不想看到命令行出现。比如Qt Creator 调用 mingw-g++ 就是这样 如果你想显示输出,你可以用 QTextEditor 检测 QProcess 的标准输出。 了解一下 QProcess 的 readyReadStandardOutput 信号和 readAllStandardOutput 成员函数。 在界面上显示输出,比弹出一个 Console 界面更友好。 2. 如果你确实想看见Console界面,可以试试调用 "cmd /k Consoleadd.exe" 注意路径问题。不小心的话,会找不到路径,并且没有任何提示。 |
startDetached 可以的 |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2025-4-16 00:17