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