如何使用 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