使用工厂创建QT宣传小部件

3

推广小部件是QT Designer中最好的功能之一。但是,在使用设计师时,它会在setupUi内部自动'new'对象。这限制了扩展界面文件的能力。

是否可能使用某种工厂来获取推广小部件,以便在需要子类的推广小部件时,可以通过更改工厂并返回小部件的子类来实现。

要求:

NamePanel* myPanel;
void setupUi(QWidget* pWidget)
{
     myPanel = Factory::CreateNamePanel();
}

有没有解决这个问题的方法?
1个回答

1

很遗憾,似乎无法将工厂添加到UI文件中。解决方法是在UI中添加带有附加布局的QWidget,并将生成的工厂小部件添加到该布局中。

enter image description here

代码将会是这样的:
ui->setupUi(this);

QWidget *panel = Factory::CreateNamePanel();
ui->namePanelContainer->layout()->addWidget(panel);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接