python – PyQt4在退出时崩溃了
窗口将显示,但在退出时崩溃. coredump显示QtGui4.dll发生了一些错误.
我的环境是PyQt4.10.4(Qt4.8.5)32位版本,Windows 7(64位).有任何线索或任何建议,以找出发生了什么?非常感谢. 删除一个或多个控件然后崩溃将不会发生.太奇怪了… settings_window.ui <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>SettingWindow</class> <widget class="QWidget" name="SettingWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>465</width> <height>439</height> </rect> </property> <property name="windowTitle"> <string>Form</string> </property> <widget class="QPushButton" name="pushButton"> <property name="geometry"> <rect> <x>50</x> <y>350</y> <width>75</width> <height>23</height> </rect> </property> <property name="text"> <string>Save</string> </property> </widget> <widget class="QPushButton" name="pushButton_2"> <property name="geometry"> <rect> <x>180</x> <y>350</y> <width>75</width> <height>23</height> </rect> </property> <property name="text"> <string>Cancel</string> </property> </widget> <widget class="QLabel" name="label_8"> <property name="geometry"> <rect> <x>40</x> <y>170</y> <width>54</width> <height>12</height> </rect> </property> <property name="text"> <string>label</string> </property> </widget> <widget class="QLineEdit" name="lineEdit_3"> <property name="geometry"> <rect> <x>110</x> <y>170</y> <width>113</width> <height>20</height> </rect> </property> </widget> <widget class="QLabel" name="label_9"> <property name="geometry"> <rect> <x>40</x> <y>230</y> <width>54</width> <height>12</height> </rect> </property> <property name="text"> <string>TextLabel</string> </property> </widget> <widget class="QLineEdit" name="lineEdit_4"> <property name="geometry"> <rect> <x>120</x> <y>220</y> <width>113</width> <height>20</height> </rect> </property> </widget> <widget class="QCheckBox" name="checkBox_4"> <property name="geometry"> <rect> <x>140</x> <y>300</y> <width>71</width> <height>16</height> </rect> </property> <property name="text"> <string>CheckBox</string> </property> </widget> <widget class="QLabel" name="label_11"> <property name="geometry"> <rect> <x>120</x> <y>190</y> <width>54</width> <height>12</height> </rect> </property> <property name="text"> <string>TextLabel</string> </property> </widget> <widget class="QLabel" name="label_12"> <property name="geometry"> <rect> <x>130</x> <y>250</y> <width>54</width> <height>12</height> </rect> </property> <property name="text"> <string>TextLabel</string> </property> </widget> <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>40</x> <y>100</y> <width>56</width> <height>14</height> </rect> </property> <layout class="QFormLayout" name="formLayout_2"> <property name="fieldGrowthPolicy"> <enum>QFormLayout::AllNonFixedFieldsGrow</enum> </property> <item row="0" column="0"> <widget class="QLabel" name="label_2"> <property name="text"> <string>label</string> </property> </widget> </item> </layout> </widget> <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>40</x> <y>20</y> <width>163</width> <height>40</height> </rect> </property> <layout class="QFormLayout" name="formLayout"> <property name="fieldGrowthPolicy"> <enum>QFormLayout::AllNonFixedFieldsGrow</enum> </property> <item row="0" column="0"> <widget class="QLabel" name="label"> <property name="text"> <string>label</string> </property> </widget> </item> <item row="0" column="1"> <widget class="QCheckBox" name="checkBox"> <property name="text"> <string>checkbox</string> </property> </widget> </item> <item row="1" column="1"> <widget class="QCheckBox" name="checkBox_2"> <property name="text"> <string>checkbox</string> </property> </widget> </item> </layout> </widget> </widget> <resources/> <connections/> </ui> settings_window.py #-*- coding: utf-8 -*- import sys from PyQt4.QtGui import qApp,QDialog,QApplication from ui_settings_window import Ui_SettingWindow class SettingWindow(QDialog,Ui_SettingWindow): def __init__(self): super(SettingWindow,self).__init__() self.setupUi(self) if __name__ == "__main__": app = QApplication(sys.argv) window = SettingWindow() window.show() sys.exit(app.exec_()) 解决方法
sip.setdestroyonexit(False)解决了我的问题.这将是pyqt退出崩溃的最终答案.
pyqt document说:
另一个参考应该是这个post,pyqt的作者谈到了sip.setdestroyonexit(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |