0

我正在 Qt 中构建一个 GUI,这将需要复制多个部分,而不是物理复制和粘贴每个部分,我更喜欢使用对象/子类的方法,这样我只需要设计一次就可以了制作它的多个实例。它将简化开发过程,因为我只需要进行一次更改。

这样做的最佳方法是什么?

4

2 回答 2

0

我曾经创建了一个应用程序,它可以打开带有相当多控件的文件的选项卡。我发现 QT 相当贪婪地吃掉内存。我终于重写了它,因为当时只有一个选项卡小部件可见,我发现伪造它要好得多,只有一个并更改该小部件中的数据(控件的状态),从而产生切换小部件的错觉。

我不知道这是否有帮助。至于子类化,你可以像任何其他 c++ 类一样子类化和实例化你的 qt 类。

您能否更具体地说明什么不起作用?

于 2012-07-12T16:35:02.620 回答
0

我会继承 QWidget 或 QFrame 并让它显示所有需要重复的控件。这样你就可以只创建几个子类而不是复制和粘贴。

 class MyWidget : public QWidget
{
     Q_OBJECT
     public: 
     explicit MyWidget( QWidget* parent = 0)
     //Member functions
     private:
     QLablel* label;
     QTextField* text;
     //More ui components        
}

MyWidget::MyWidget( QWidget* parent) : QWidget(parent)
{
   label = new QLabel(this);
   text = new QTextField(this)
}

如果您选择从 QWidget 而不是 QMainWindow 开始,则从设计器开始,则可以将小部件添加到其他小部件或表单中。这可以通过将小部件重新导入设计器来完成,但我从来没有让它工作。我通常有一个与我用于设计模式的大小相同的占位符,然后在填充表单时将其换成我的自定义占位符。

于 2012-07-12T18:40:48.340 回答