gpt4 book ai didi

python - QProcess 未调用完成?

转载 作者:行者123 更新时间:2023-12-01 07:17:13 25 4
gpt4 key购买 nike

我尝试实现 subprocess Popen blocking PyQt GUI 的建议但似乎 onFinished 函数永远不会被调用。

class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):

[...]

def Run_PnL_Script(self):
self.Run_PnL.setEnabled(False)
self.Run_PnL.setStyleSheet("background-color: #D3D3D3; color: #FFFFFF")
self.PnL_Status.setText("Running...")
process = QtCore.QProcess(self)
process.finished.connect(self.onFinished)
process.startDetached("cmd.exe", ["/c", "K:\Market Risk\Risk App\Batches\RTest.bat"])

def onFinished(self, exitCode, exitStatus):
self.PnL_Status.setText("Complete.")
self.Run_PnL.setEnabled(True)
self.Run_PnL.setStyleSheet("background-color: #4582EC; color: #FFFFFF")

[...]

预先感谢您的帮助。

最佳答案

您有 2 个错误:

  • 在 cmd.exe 中执行完命令并不意味着您关闭 cmd.exe,因此您必须使用 .bat 末尾的 EXIT 命令将其关闭。

RTest.bat

:: Another commands
EXIT
  • 请勿使用startDetached()由于这是一个静态方法,它创建与“process”变量不同的内部 QProcess,因此您必须使用 start()方法。
# ...
process = QtCore.QProcess(self)
process.finished.connect(self.onFinished)
process.start("cmd.exe", ["/c", "K:\Market Risk\Risk App\Batches\RTest.bat"])

关于python - QProcess 未调用完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57896472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com