Fortran Coder

关于QT 调用外部.exe没有出现命令行窗口的问题

查看数: 7259 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-10-10 14:55

正文摘要:

本帖最后由 紫雪封尘 于 2019-10-10 14:57 编辑 我使用qt creator5.12的64位版本 ,使用Qprocess start我需要的Fortran的.exe程序,但是却没有出现我所希望出现的.exe的命令行窗口,输出结果却在qt creator的输 ...

回复

vvt 发表于 2019-10-16 12:01:13
大概的思路如代码如下:
[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);
}
vvt 发表于 2019-10-16 11:57:30
1. 一般人用GUI调用Console,都不想看到命令行出现。比如Qt Creator 调用 mingw-g++ 就是这样
如果你想显示输出,你可以用 QTextEditor 检测 QProcess 的标准输出。
了解一下 QProcess 的 readyReadStandardOutput 信号和 readAllStandardOutput 成员函数。
在界面上显示输出,比弹出一个 Console 界面更友好。

2. 如果你确实想看见Console界面,可以试试调用
"cmd /k Consoleadd.exe"
注意路径问题。不小心的话,会找不到路径,并且没有任何提示。

vvt 发表于 2019-10-10 19:03:29
startDetached 可以的

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-8 15:54

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表