0
我有一個QMainWindow,每次點擊一個按鈕就會啓動一個QDialog,當我打開一個或多個對話框時關閉QMainWindow時,我無法弄清爲什麼python二進制文件崩潰。用qdialog關閉qmainwindow時發生Python崩潰
這不是一個複雜的Qt應用程序,我真的很努力去理解會發生什麼。
下面的代碼:
# dependency modules
from PyQt4 import QtGui
import sys
# custom modules
from ui import SingleOrderUI, DashBoardUI
class SingleOrder(QtGui.QDialog, SingleOrderUI.Ui_SingleOrder):
def __init__(self, parent=None):
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
class DashBoard(QtGui.QMainWindow, DashBoardUI.Ui_DashBoard):
def __init__(self):
QtGui.QMainWindow.__init__(self)
super(DashBoard, self).__init__()
# setup UI
self.setupUi(self)
self.newOrderBtn.clicked.connect(self.newOrder)
def newOrder(self):
print 'New order clicked'
so = SingleOrder(self)
so.show()
app = QtGui.QApplication(sys.argv)
window = DashBoard()
window.show()
sys.exit(app.exec_())
任何幫助,將不勝感激。
編輯:當使用ipython啓動時,關閉QMainWindow後對話框仍然顯示,所以這可能是問題來自何處。 我將QMainWindow作爲QDialog的父參數,我認爲這足以在QMainWindow關閉時將它們殺死。
python崩潰時沒有堆棧跟蹤嗎? – sashoalm
實際上,它在Linux上運行良好,當我在Windows上的ipython下運行它時,沒有回溯,但QDialog保持打開狀態,我必須手動關閉它們。我無法在Windows上獲得任何回溯。 – sevenup
所以你使用的'崩潰'這個詞不像[那種崩潰](http://img205.imageshack.us/img205/9509/winmysqladminxamppdv3.jpg)? – sashoalm