由于 QtDesigner 中的一些错误已集成到QtCreator 2.4.1中,我创建了分隔定义作为继承自 QWidget 的类。这解决了在 QStackedWidget 页面上的Layouts中显示小部件的问题。另外,这个非常独立的复杂UI。
然而,对于这个解决方案,我陷入主要形式的问题,而页面是单独的类。在内部类中,我没有看到主窗体/窗口的元素(窗口小部件,插槽),而逻辑需要在那里进行操作(启用/禁用某些按钮,绑定弹出窗口等)。
我正在寻找一个好的模式,应该如何解决这个问题。我尝试通过父指针访问Google上的一些建议,但是我失败了并且崩溃了应用程序:-)这不是我想要的。
答案 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);
}