使用sip.setdestroyonexit(False)避免退出PyQt程序崩溃的后果?

时间:2014-07-02 03:16:46

标签: python pyqt pyqt4 destructor

我有一个PyQt4程序,在退出时会崩溃。我尝试使用

强制退出QtGui.QMainWindow
def closeEvent(self, event):
    exit()

但它并没有阻止程序崩溃。我也尝试过使用

app.setActiveWindow(MainWindow)    
exit(app.exec_())

但似乎没有解决问题。最后,我发现了一篇关于类似问题的SO帖子,它通过将sip.setdestroyonexit()设置为False来修复。

  

参考

     

当Python解释器退出PyQt4(默认情况下)时,调用C ++   它拥有的所有包装实例的析构函数。这发生在一个   随机顺序,因此可能导致解释器崩溃。这个   可以通过调用sip.setdestroyonexit()来禁用行为   功能

     

PyQt5总是自动调用sip.setdestroyonexit()。

我设法将此设置设置为False,以防止我的程序崩溃。 现在,我想知道将sip.setdestroyonexit()设置为False会有什么后果吗?如果禁用对C ++析构函数的调用会发生什么?

0 个答案:

没有答案