使用Qt Designer的选项卡式对话框

时间:2014-01-02 17:37:13

标签: qt qt-designer qtgui qdialog qtabwidget

我是Qt的新手,并且使用Qt Designer设计的TabbedDialog框有问题。 我有一个Dialog dlg,我在其上放置了一个tabWidget MyTabWidget,其中包含两个选项卡Tab1和Tab2。我想为每个选项卡创建单独的cpp文件,并在各自的文件中定义函数。我遇到的问题是如何在这些相应的文件中访问对话框dlg的UI小部件。

2 个答案:

答案 0 :(得分:0)

您可以将标签指针传递给您要使用的功能。类似的东西:

void Class1::yourFunction1(QWidget *tab1);
void Class2::yourFunction2(QWidget *tab2);

您可以访问以下小部件标签:

ui->tab 

如果它是在QtDesigner中创建的。

答案 1 :(得分:0)

这里有几个步骤可以在following documentation中详细解释。

1)包括#include "ui_foo.h"

这是访问代码中的UI元素所必需的。这是通过QtDesigner和ui编译器提供的文件,也就是说。过程。

2)继承Ui :: Foo或在你的班级中拥有一个带有合成的对象。它会是这样的:

class Foo : public QWidget
{
    Q_OBJECT

public:
    Foo(QWidget *parent = 0);

private:
    Ui::Foo ui;
};

class Foo : public QWidget, private Ui::Foo
{
    Q_OBJECT

public:
    Foo(QWidget *parent = 0);
};

3)然后,您可以使用此实例访问由QtDesigner应用程序创建的小部件(类似于ui-> foo)。

bool Foo::doStuff()
{
    ui->foo()->doStuff();
}

您可能不希望在编写时有两个单独的源文件和类,但如果您愿意,上述步骤可以应用于两者。

话虽如此,我认为如果您浏览上述文档会更好,因为它更详细地介绍了几种方法,以及如何访问QtDesigner生成的源代码中的UI组件。