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