我正在运行QProcess事件,当直接在cmd中按Ctrl + C时退出。如何从python发送信号以彻底关闭进程?我尝试过kill(),它不会让程序相应地保存。另外terminate()不会响应。希望您能提供帮助。
self.btn_1 = QPushButton('Start')
self.btn_1.clicked.connect(self.start)
self.btn_2 = QPushButton('Stop')
self.btn_1.clicked.connect(self.stop)
self.process = QProcess()
def start(self):
self.process.start("C:\path\program.exe")
def stop(self):
print('Stop the process!')
您需要获取过程PID,然后才能通过os.kill
发送信号:
import os
import signal
os.kill(<pid>, signal.SIGINT) #SIGINT is CTRL-C
您使用以下命令从QProcess
对象中获得PID:
pid = self.process.processId()