使用工厂创建QT推广的小部件

时间:2014-05-15 16:02:34

标签: c++ qt

推广小部件是QT Designer中最好的功能之一。但是当使用设计师时,它自己就是新的对象(在setupUi中)。这限制了扩展接口文件的能力。

是否可以使用某种工厂来获取提升的小部件,这样当需要提升小部件的子类时,可以通过更改工厂并返回小部件的子类来实现。 / p>

要求:

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

有没有解决这个问题的工作?

1 个答案:

答案 0 :(得分:1)

不幸的是,似乎无法在Ui文件中添加工厂。解决方法是在ui中安装带有附加布局的QWidget,并将工厂生成的小部件添加到此布局中。

enter image description here

代码如下所示:

ui->setupUi(this);

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