目前,运行我的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和扭曲的业余爱好者。任何帮助理解我用这段代码做什么也会非常有用,因为我很想了解我做错了什么:)
谢谢!
答案 0 :(得分:0)
将一个处理程序附加到Qt出口信号,该信号停止反应堆(通过reactor.stop()
)。