PyQt应用程序在退出时崩溃(Python 3.4.3 / PyQt5 / Windows 10)

时间:2016-02-11 03:11:45

标签: python pyqt5

我意识到这是一个模糊的问题,但我不确定如何使其更具体。

我的代码的骨架如下:

from PyQt5.QtCore       import *
from PyQt5.QtGui        import *
from PyQt5.QtWidgets    import *

class FormWidget(QWidget):
    def __init__(self, parent):        
        super(FormWidget, self).__init__(parent)

class MainWindow(QMainWindow):

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        form = FormWidget(self) 
        self.setCentralWidget(form) 

        [do a bunch of stuff with form]


if __name__ == '__main__':

    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

在FormWidget类中,有一个用于捕获键盘输入的keyPressEvent()方法,并且在特定键('q')上调用它:

mainWindow.close()

大多数情况下,这会导致应用程序根据需要退出。但偶尔(没有我可以看到的可预测模式),它会导致崩溃(对话框出现'python.exe已停止工作',并带有'关闭程序'按钮)。

我想,第一个问题是:这不是终止PyQt GUI应用程序的正确方法吗?

如果是,那么第二个问题是:据推测,我的代码在某处行为不端。但我不确定要寻找什么样的不当行为。我能做出什么样的错误会导致这种情况?

任何想法都赞赏。

/约翰

0 个答案:

没有答案