推广小部件是QT Designer中最好的功能之一。但是当使用设计师时,它自己就是新的对象(在setupUi中)。这限制了扩展接口文件的能力。
是否可以使用某种工厂来获取提升的小部件,这样当需要提升小部件的子类时,可以通过更改工厂并返回小部件的子类来实现。 / p>
要求:
NamePanel* myPanel;
void setupUi(QWidget* pWidget)
{
myPanel = Factory::CreateNamePanel();
}
有没有解决这个问题的工作?
答案 0 :(得分:1)
不幸的是,似乎无法在Ui文件中添加工厂。解决方法是在ui中安装带有附加布局的QWidget,并将工厂生成的小部件添加到此布局中。
代码如下所示:
ui->setupUi(this);
QWidget *panel = Factory::CreateNamePanel();
ui->namePanelContainer->layout()->addWidget(panel);