我在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"
答案 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"])