Pyqt - 无法从 QProcess 获得任何输出
Pyqt - Can not get any output from QProcess
我已经在 SO 上以及互联网上的任何地方阅读了很多类似的问题,但我找不到解决方案。
我有以下命令运行:
c:\lscc\Programmer\3.8_x64\bin\nt64\pgrcmd.exe -infile test.xcf
从 CMD window 我有这样的标准输出:
Lattice Programmer Diamond (64-bit) 3.8.0.115.3 Command Line Argument
check - OK Loading Programmer Device Database... Done. Writing log
file to /programmer.log Opening XCF file... Done. Programming XCF
Contents... Connected to Lattice Cable Server. Failed.
我想通过 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
唯一有用的地方是错误字符串:
> process.errorString() = "Unknown error"
您正在使用以下方法:
void QProcess::start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode = ReadWrite)
显然 QProcess 需要区分两者,因此您必须将其分开:
process.start("c:\lscc\Programmer\3.8_x64\bin\nt64\pgrcmd.exe", ["-infile" "test.xcf"])
我已经在 SO 上以及互联网上的任何地方阅读了很多类似的问题,但我找不到解决方案。
我有以下命令运行:
c:\lscc\Programmer\3.8_x64\bin\nt64\pgrcmd.exe -infile test.xcf
从 CMD window 我有这样的标准输出:
Lattice Programmer Diamond (64-bit) 3.8.0.115.3 Command Line Argument check - OK Loading Programmer Device Database... Done. Writing log file to /programmer.log Opening XCF file... Done. Programming XCF Contents... Connected to Lattice Cable Server. Failed.
我想通过 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
唯一有用的地方是错误字符串:
> process.errorString() = "Unknown error"
您正在使用以下方法:
void QProcess::start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode = ReadWrite)
显然 QProcess 需要区分两者,因此您必须将其分开:
process.start("c:\lscc\Programmer\3.8_x64\bin\nt64\pgrcmd.exe", ["-infile" "test.xcf"])