Pyqt-无法从QProcess获取任何输出

时间:2018-07-17 09:35:13

标签: pyqt stdout qprocess

我在SO以及互联网上的任何地方都读过很多类似的问题,但是我找不到解决方案。

我要运行以下命令:

c:\\lscc\\Programmer\\3.8_x64\\bin\\nt64\\pgrcmd.exe -infile test.xcf

在CMD窗口中,我有这样的标准输出:

  

Lattice Programmer Diamond(64位)3.8.0.115.3命令行参数   检查-确定正在加载编程器设备数据库...完成。写日志   文件到/programmer.log打开XCF文件...完成。编程XCF   目录...已连接到莱迪思电缆服务器。失败。

我想通过QProcess在我的应用程序中运行它,但是我找不到如何获得相同输出的方法。 我有以下代码,该命令已执行,我无法获得任何输出:

process = QProcess()
process.setProcessChannelMode(QProcess.MergedChannels)
process.start("c:\\lscc\\Programmer\\3.8_x64\\bin\\nt64\\pgrcmd.exe -infile test.xcf")
process.waitForFinished()

> process.readAllStandardError() = b" # empty
> process.readAllStandardOutput() = b" # empty
> process.exitCode() = -9

在错误字符串中只有usefeull所在的地方

> process.errorString() = "Unknown error"

1 个答案:

答案 0 :(得分:1)

您正在使用以下方法:

  

无效的QProcess :: start(常量QString和程序,常量QStringList和参数,QIODevice :: OpenMode模式= ReadWrite)

并且显然QProcess需要区分两者,因此您必须将其分开:

process.start("c:\\lscc\\Programmer\\3.8_x64\\bin\\nt64\\pgrcmd.exe", ["-infile" "test.xcf"])