1

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

4

2 回答 2

0

您可以将制表符指针传递给您要使用的函数。就像是:

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

您可以访问这些小部件选项卡,例如:

ui->tab 

如果它是在 QtDesigner 中创建的。

于 2014-01-02T18:05:31.727 回答
0

此处需要采取一些步骤,以下文档对此进行了详细说明。

1) 包括#include "ui_foo.h"

这是访问代码中的 UI 元素所必需的。这是可通过 QtDesigner 和 ui 编译器(又名)获得的文件。uic进程。

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 组件。

于 2014-01-02T19:55:02.223 回答