如何使用Ctrl + C输入完全退出QProcess?

问题描述 投票:0回答:1

我正在运行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!')
python pyqt pyqt5 qprocess
1个回答
0
投票

您需要获取过程PID,然后才能通过os.kill发送信号:

import os
import signal 

os.kill(<pid>, signal.SIGINT) #SIGINT is CTRL-C

您使用以下命令从QProcess对象中获得PID:

pid = self.process.processId()
© www.soinside.com 2019 - 2024. All rights reserved.