多次启动pyqt对话框窗口

2024-03-29 13:47:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一些测试代码,以了解如何在脚本期间多次启动一个简单的pyqt Ui\u对话框。我希望在脚本运行时根据特定条件启动窗口。其想法是,它只是一个弹出式通知窗口与不同的文本,用户将点击确定。我在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)

不撞车的正确方法是什么?你知道吗

谢谢你。你知道吗


Tags: text用户self脚本appuidefsys