來割個草 (汗顏
最近進入開發狂熱期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
沒有留言:
張貼留言