Qt實用技巧:界面切換使用Dialog全屏切換


需求

        在做應用程序的過程中,需要使用界面切換,界面切換到下一個界面使用new一個界面並顯示,如系統設置,相關信息展示等等。

       (注意:本技巧適用的條件是,主界面不需要相關的信號與槽做消息循環,因為主界面所運行的消息循環將停留在dialog的exec()並主要實現dialog內部的消息循環)

        此需求,使用dialog做即可,可顯示全屏也可不顯示全屏,沒必要使用QWidget,其造成切換時,內存釋放問題(實際過程中:new出來的頁面,退出該頁面后delete,再按住ALT+F4退出程序,應用程序退出后會造成異常表現為出現“”停止運行“”)

原理

        使用dialog的exec()模態函數顯示對畫框,先使用showFullScreen(),再使用exec(),將實現全屏模態顯示。

注意

        全屏dialog的時候,使用alt+F4會關閉本dialog,退回到之前調用exec()的窗口(非退出應用程序)。

代碼示例

切換到對話框界面

 

[cpp]  view plain  copy
 
  1. void StartWidget::on_pushButton_chengJi_clicked()  
  2. {  
  3.     ChengJi chengJi();  
  4.     chengJi.showFullScreen(); // 需要全屏,否則注視掉  
  5.     chengJi.exec();           // 可判斷返回值 QDialog::Accepted和QDialog::Rejected;  
  6. }  

退出對話框界面

 

 

[cpp]  view plain  copy
 
  1. void ChengJi ::on_pushButton_exit_clicked()  
  2. {  
  3.     accept(); // reject()也可以,其返回值 QDialog::Accepted和QDialog::Rejected;  
  4. }  

 

http://blog.csdn.net/qq21497936/article/details/78634425


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM