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

2024-06-08 17:46:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这是一个有点模糊的问题,但我不知道如何使它更具体。在

我的代码框架如下:

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”)上调用以下函数:

^{pr2}$

大多数情况下,这会导致应用程序根据需要退出。但偶尔(我看不出任何可预测的模式),它会导致崩溃(对话框显示'python.exe“已停止工作”,使用“关闭程序”按钮)。在

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

如果是这样,那么第二个问题是:我的代码可能在某个地方出现了错误行为。但我不知道该找什么样的不良行为。我犯了什么样的错误会导致这一切?在

任何想法都值得赞赏。在

/约翰


Tags: 代码fromimportselfformappinitdef