如何使用 Ctrl+C 输入干净地退出 QProcess?
How to cleanly exit a QProcess with Ctrl+C input?
我是运行一个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()
编辑:在Windows上,用CTRL_C_EVENT
替换SIGINT
我是运行一个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()
编辑:在Windows上,用CTRL_C_EVENT
替换SIGINT