+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何使用Ctrl + C输入干净退出QProcess?

发布于2021-01-17 16:46     阅读(615)     评论(0)     点赞(7)     收藏(4)


0

1

2

3

4

5

6

我正在运行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上,将SIGINT替换为CTRL_C_EVENT

0

1

2

3

4

5

6

7

8



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/777274/89f571bd176ddbf2a240/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)