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

本文介绍如何在PyQt中实现模态和非模态对话框的显示,并解释了非模态对话框中使用事件循环防止窗口一闪而过的原理。

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


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


       


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值