我已经整理了一些测试代码,以确定如何在脚本中多次启动简单的pyqt Ui_Dialog。我希望在脚本运行时根据特定条件启动窗口。这个想法是它只是一个包含不同文本的弹出通知窗口,用户将单击确定。我在QtDesigner中设计了窗口,并在另一个类中继承了生成的代码:
class MsgWindow(QtGui.QDialog):
def __init__(self,parent=None):
QtGui.QWidget.__init__(self,parent)
self.app = QtGui.QApplication(sys.argv)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.OK, QtCore.SIGNAL('clicked()'),self.close)
def AddText(self,text):
""" Method to add text to textEdit box """
self.ui.textEdit.append(text + '\n')
def closeEvent(self, event):
print "Closing the app"
#self.deleteLater()
if __name__=='__main__':
app = QtGui.QApplication(sys.argv)
myapp = MsgWindow()
myapp.show()
sys.exit(app.exec_())
然后我的测试脚本只启动窗口(用户关闭它)并重复。问题是在最后一次关闭之后,python崩溃了(python.exe已停止工作)。这是测试脚本代码:
app = QtGui.QApplication(sys.argv)
dlg = MsgWindow()
for x in range(0,3):
dlg.AddText("This is a test, iteration: %d"%x)
dlg.exec_()
#sys.exit(app.exec_())
time.sleep(2)
在没有崩溃的情况下执行此操作的正确方法是什么?
谢谢。