Qt从作为QtDesigner中单独的类创建的stackedWidget页面访问父级

时间:2012-05-30 19:47:13

标签: qt qt4 qt4.8

由于 QtDesigner 中的一些错误已集成到QtCreator 2.4.1中,我创建了分隔定义作为继承自 QWidget 的类。这解决了在 QStackedWidget 页面上的Layouts中显示小部件的问题。另外,这个非常独立的复杂UI。

然而,对于这个解决方案,我陷入主要形式的问题,而页面是单独的类。在内部类中,我没有看到主窗体/窗口的元素(窗口小部件,插槽),而逻辑需要在那里进行操作(启用/禁用某些按钮,绑定弹出窗口等)。

我正在寻找一个好的模式,应该如何解决这个问题。我尝试通过指针访问Google上的一些建议,但是我失败了并且崩溃了应用程序:-)这不是我想要的。

1 个答案:

答案 0 :(得分: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);
}