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