來割個草 (汗顏
最近進入開發狂熱期OuO,小忙
作品都在我的 GitHub,不過目前主要是測試
我的 Instagram 應該可能大概會有一些開發日常
主題:
從主視窗開啟其它視窗時,若將主視窗 hide 掉
要從其它視窗離開時,就找不到可以 show 主視窗的方法
突然想到,如果把物件當參數傳過去應該可....
算了,先記錄查到的方法
然後,有點點小複雜喔....
其實也還好,東西加一加就可以動了
來
1,主視窗 (以下簡稱"主 ui ") 的 class 記得 include 其它視窗 (以下簡稱"副 ui ") 的 .h檔
也就是在主 ui 的 .h 檔加入
#include "subwindow.h"//請依照自己的檔案作設定
2,在主 ui 的 .h 檔加入
public: void gotoSubWindow();//這個可自訂,也可以是按按鈕或其它 private slots: void close_child(); private: bool m_show_child;
3,在主 ui 的 .cpp 檔加入
void MainWindow::close_child()//MainWindow 就是主視窗的 class { m_show_child = false; } void MainWindow::gotoSubWindow() { SubWindow subWindow;//SubWindow 就是副視窗的 class this->hide(); QObject::connect(&subWindow,SIGNAL(close_me()),this,SLOT(close_child())); m_show_child = true; while (m_show_child) { subWindow.exec(); } this->show(); }
4,在副 ui 的 .h 檔加入
protected: void closeEvent(QCloseEvent *); signals: void close_me(); private slots: void close_child(); private: bool m_show_child;
5,在副 ui 的 .cpp 檔加入
void SubWindow::close_child() { m_show_child = false; } void SubWindow::closeEvent(QCloseEvent *) { emit close_me(); }
這樣就大致上完成了
只要在主 ui 呼叫 gotoSubWindow() 就會出現 副 ui
而關閉副 ui 時主 ui 就會自動出現
完整範例在這裡:aben20807/Qt_projects/006_qt_mainRecoverFromSubWindow_test/src/
以上,可能有錯,歡迎提出,感激不盡@@
參考資料:
Exercise: Qt hide and show #3
沒有留言:
張貼留言