QProcess可以启动程序但不能启动python(命令行)

时间:2017-07-24 14:07:40

标签: c++ qt qprocess

以下代码无法启动python命令行。

QProcess *myProcess = new QProcess(this);
myProcess->start("\"C:\\Program Files\\Python27\\python.exe\"");

如果我用(例如)

替换python27
myProcess->start("\"C:\\Program Files\\Notepad++\\notepad++.exe\"")

记事本打开。为什么我的程序能够启动记事本但不能启动Python命令行?

我尝试使用建议here的startDetached(),但这没有什么区别。

QProcess :: Error()给出了错误5:未知错误。

2 个答案:

答案 0 :(得分:0)

如果您只是想使用' python控制台'你必须使用Windows的cmd.exe应用程序 您必须在PATH中使用python,以便Windows控制台知道从哪里获取它 所以,您可以尝试:QProcess :: startDetached(" cmd"," python")..查看更具体的语法详细信息here

答案 1 :(得分:0)

我似乎误解了启动命令行时会发生什么。我期待python命令行或命令提示符窗口打开。

事实证明,如果我只是将我的命令作为参数传递start(),就像这样:

 myProcess->start("cmd.exe /C python C:\\Users\\SP4\\Desktop\\helloworld.py");

命令提示符运行我的python脚本,我得到输出(" Hello World")使用:

QString output = myProcess->readAllStandardOutput();

所有这些都发生在后台,您实际上无法打开命令行窗口并打印出来#34; Hello,World"。

如果我误解了某些内容,请纠正我。