【问题标题】:Using a factory to create QT promoted widgets使用工厂创建 QT 提升的小部件
【发布时间】:2014-05-16 14:27:47
【问题描述】:

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

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

要求:

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

是否有解决方法来实现这一点?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

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

    代码如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      相关资源
      最近更新 更多