退出GUI时出现错误:
Error: “python.exe has stopped working”
当我使用topmenu和工具栏退出选项退出时,会发生这种情况.当我关闭右上角“ X”上的程序时,也会发生这种情况.
但是,当我评论这一行时:
self.mainToolBar.addAction(exitAction)
右上角的“ X”不会出现此错误.
对于工具栏和顶部菜单上的退出选项,我使用的是:
exitAction.triggered.connect(qApp.quit)
遵循代码:
class Example(QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.topmenu()
self.toolbar()
self.resize(800, 600)
self.setWindowTitle('Example')
self.setWindowIcon(QtGui.QIcon('test.gif'))
self.show()
def topmenu(self):
#Buttons
exitAction = QAction(QtGui.QIcon('plus.gif'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.triggered.connect(qApp.quit)
#Create MenuBar
menubar = self.menuBar()
#Add options
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAction)
def toolbar(self):
exitAction = QAction(QtGui.QIcon('plus.gif'), 'Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setToolTip("Exit")
exitAction.triggered.connect(qApp.quit)
self.mainToolBar = QToolBar(self)
self.mainToolBar.setObjectName("mainToolBar")
self.addToolBar(Qt.LeftToolBarArea, self.mainToolBar)
# Line is giving the stop problem
self.mainToolBar.addAction(exitAction)
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
我该如何解决?
解决方法:
我已经做了类似的事情:QtGui.qApp.quit(),在您的情况下:
exitAction.triggered.connect(QtGui.qApp.quit())
如果错误仍然存在,请尝试像这样覆盖closeEvent:
def closeEvent(self, event):
QtGui.qApp.quit()
event.ignore()
我希望这有帮助.