pyQT中模态对话框与非模态对话框(解决一闪而过)的显示源码

来源:互联网 发布:数据库用什么软件 编辑:程序博客网 时间:2024/06/13 03:45

1.   非模态对话框显示

      

      def func_button7(self):           

               myapp2 = MyForm2()         #   line  1
               myapp2.show()                   #   line  2


               qe = QEventLoop()             #   line  3
               qe.exec_()                            #   line  4
       

       其实上面的line 1 和line  2 两行代码即可显示一个非模态对话框(QDialog),,但是存在一个问题,即func_button7方法执行完成后,出了函数作用域myapp2就被销毁了,所以

        会出现窗体一闪而过的现象,line 3和line 4两行就能解决此现象,line 3实例化了一个 事件循环对象,line 4 可以起到阻塞的作用,即循环监听窗体事件,直到窗口关闭退

        出循环。



2.   模态对话框显示

       def func_button7(self):       

               myapp2 = MyForm2()         #   line  1
               myapp2.exec_()                  #   line  2


       模态对话框的显示比非模态对话框的显示要简单,就两行代码。