首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭PYQT MainFrame时如何关闭多处理

关闭PYQT MainFrame时如何关闭多处理
EN

Stack Overflow用户
提问于 2017-10-17 07:52:18
回答 1查看 129关注 0票数 1

我有一个PYSide2大型机,当我点击按钮创建一个进程名TTT时,我认为当我关闭大型机时进程也关闭了,但它不是。

我该怎么办?

代码语言:javascript
复制
class Test7(QMainWindow):

    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi()

    def setupUi(self):
        ...(not important code here)...
        self.pushButton.clicked.connect(self.btnClicked)


    def btnClicked(self):
        ttt = TTT('aaa')
        ttt.deman = False
        ttt.start()


class TTT(multiprocessing.Process):
    def __init__(self, name):
        multiprocessing.Process.__init__(self)
        print('nothing to do')

    def run(self):
        while True:
            print('abc')
            time.sleep(10)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Test7()
    w.show()
    sys.exit(app.exec_())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-17 08:02:07

您可以将daemon设置为True

进程的守护进程标志,一个布尔值。必须在调用start()之前设置它。 初始值是从创建过程继承的。 当进程退出时,它尝试终止其所有守护进程子进程。 请注意,不允许守护进程创建子进程。否则,如果守护进程在父进程退出时被终止,则守护进程将使其子进程成为孤儿。此外,这些不是Unix守护进程或服务,它们是正常进程,如果非守护进程已经退出,它们将被终止(而不是加入)。

以你的片段为例:

代码语言:javascript
复制
class TTT(multiprocessing.Process):
    def __init__(self, name):
        multiprocessing.Process.__init__(self)
        self.daemon = True
        print('nothing to do')

    def run(self):
        while True:
            print('abc')
            time.sleep(10)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46785153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档