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


       模態對話框的顯示比非模態對話框的顯示要簡單,就兩行代碼。


       


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章