У меня есть QMainWindow, который запускает QDialog каждый раз, когда я нажимаю кнопку, и я не могу понять, почему происходит сбой бинарного файла python, когда я закрываю QMainWindow, когда открыто одно или несколько диалоговых окон.
Это не сложное приложение 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 закрывается.
qtconsole
? Возможно, в этом случае есть некоторое взаимодействие междуQApplication
ipython и вашим кодом (однако все зависит от того, как вы запускаете код и т. д.) - person Bakuriu   schedule 21.01.2014