2012-05-30 21 views
0

由於QtDesigner一些bug集成到QtCreator 2.4.1我創建分離的定義爲一類從繼承QWidget的。這解決了在Layouts頁面QStackedWidget頁面中放置小部件的問題。另外這個很好的獨立複雜的用戶界面Qt的訪問父作爲單獨的類創建在QtDesigner

但是,使用這種解決方案,我陷入了主窗體和頁面單獨的類的問題。在內部類中,我沒有看到主窗體/窗口的元素(小部件,插槽),而邏輯需要在那裏操作(啓用/禁用某些按鈕,綁定彈出窗口等)。

我正在尋找一個好模式應該如何解決這樣的問題。我試着按照谷歌上的一些建議,通過指針訪問,但是我失敗並且崩潰了應用程序:-)這不是我正在尋找的。

回答

0

解決此類問題的典型Qt方法是通過signals完成的。

在你的情況下,你可以用頁面中的一些數據發出信號,而主表單有一個與對象信號相關的關聯函數(-s)。 喜歡的東西:

定義

class page : public QObject 
{ 
    Q_OBJECT 

... 

    signals: 
     void my_custom_signal(int value); 
}; 

實施

void page::function() 
{ 
    // some code 

    emit my_custom_signal(FORM_SHOW_ABOUT_DIALOG); 
}