如何正确集成PyQt4和Twisted?

时间:2018-01-07 08:26:40

标签: python pyqt pyqt4 twisted

目前,运行我的pyqt app的代码使用twisted,如下所示:

import sys
from PyQt4 import QtGui

class MainWindow(QtGui.QMainWindow):
    def __init__(self, reactor, parent=None):
        super(MainWindow, self).__init__(parent)
        self.reactor = reactor
        self.resize(250,150)
        self.move(300,300)
        self.setWindowTitle('Simple')

    def closeEvent(self, e):
        self.reactor.stop()

if __name__=="__main__":
    import qt4reactor
    app = QtGui.QApplication(sys.argv)
    qt4reactor.install()
    from twisted.internet import reactor
    window = MainWindow(reactor)
    window.show()
    reactor.runReturn()
    sys.exit(app.exec_())

这段代码是我在网上用qt4reactor文档找到的。我的应用程序运行正常,但它没有正确关闭。当我退出应用程序时,某些东西一直在运行。按ctrl + c强制事件关闭会导致python.exe停止工作错误。

目标是让应用程序正常关闭。任何建议将不胜感激。一般来说,我是一个pyqt和扭曲的业余爱好者。任何帮助理解我用这段代码做什么也会非常有用,因为我很想了解我做错了什么:)

谢谢!

1 个答案:

答案 0 :(得分:0)

将一个处理程序附加到Qt出口信号,该信号停止反应堆(通过reactor.stop())。