需求
在做應用程序的過程中,需要使用界面切換,界面切換到下一個界面使用new一個界面並顯示,如系統設置,相關信息展示等等。
(注意:本技巧適用的條件是,主界面不需要相關的信號與槽做消息循環,因為主界面所運行的消息循環將停留在dialog的exec()並主要實現dialog內部的消息循環)
此需求,使用dialog做即可,可顯示全屏也可不顯示全屏,沒必要使用QWidget,其造成切換時,內存釋放問題(實際過程中:new出來的頁面,退出該頁面后delete,再按住ALT+F4退出程序,應用程序退出后會造成異常表現為出現“”停止運行“”)
原理
使用dialog的exec()模態函數顯示對畫框,先使用showFullScreen(),再使用exec(),將實現全屏模態顯示。
注意
全屏dialog的時候,使用alt+F4會關閉本dialog,退回到之前調用exec()的窗口(非退出應用程序)。
代碼示例
切換到對話框界面
- void StartWidget::on_pushButton_chengJi_clicked()
- {
- ChengJi chengJi();
- chengJi.showFullScreen(); // 需要全屏,否則注視掉
- chengJi.exec(); // 可判斷返回值 QDialog::Accepted和QDialog::Rejected;
- }
退出對話框界面
- void ChengJi ::on_pushButton_exit_clicked()
- {
- accept(); // reject()也可以,其返回值 QDialog::Accepted和QDialog::Rejected;
- }
http://blog.csdn.net/qq21497936/article/details/78634425