多次启动pyqt对话框窗口

时间:2017-11-06 14:12:41

标签: python python-2.7 pyqt4

我已经整理了一些测试代码,以确定如何在脚本中多次启动简单的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)

在没有崩溃的情况下执行此操作的正确方法是什么?

谢谢。

0 个答案:

没有答案