python退出使用PyQt5分段错误
问题描述:
尝试使用PyQt5打开2个窗口,我们遇到了一个残酷的Python退出与分段错误消息。python退出使用PyQt5分段错误
最小再现错误是:
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt5 import QtCore, QtGui, QtWidgets
>>> def application():
... import sys
... app = QtWidgets.QApplication(sys.argv)
... Dialog = QtWidgets.QDialog()
... Dialog.show()
... app.exec_()
...
>>> import sys
>>> app = QtWidgets.QApplication(sys.argv)
>>> MainWindow = QtWidgets.QMainWindow()
>>> list = application()
>>> MainWindow.show()
Segmentation error (core dumped)
我们怀疑的第一个窗口妨碍第二个窗口开放。 我们怎样才能没有问题地打开两个窗口?
答
你说得对,这是因为我创建了2个我有问题的QApplication对象。 此程序也适用于此代码:
from PyQt5 import QtCore, QtGui, QtWidgets
def application():
import sys
Dialog = QtWidgets.QDialog()
Dialog.show()
app.exec_()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
list = application()
MainWindow.show()
sys.exit(app.exec_())
为什么要创建两个'QApplication'对象? –