**一、单一继承方式: **</span>
即将ui作为类的成员变量使用。优点是,能够控制用户界面的外观和显示方式,并能够与用户交互;同事还允许使用同样的ui文件生成多个不同的自定义界面类。
* vs新建qt4guiclass
>

- 填写合适的基类和名字

生成之后会产生一个.h文件和一个.cpp文件
</div>//.h file#**ifndef** RIGISTER2D_H #**define** RIGISTER2D_H #**include** <QDockWidget> #**include** "ui_rigister2d.h" **class** Rigister2d : **public** QDockWidget,Ui_Rigister2d { Q_OBJECT **public**: Rigister2d(QWidget *parent = 0); ~Rigister2d(); **private**: Ui::Rigister2d ui; }; #**endif** // RIGISTER2D_H</div>
//.cpp file#**include** "rigister2d.h" Rigister2d::Rigister2d(QWidget *parent) : QDockWidget(parent) { ui.setupUi(**this**); } Rigister2d::~Rigister2d() { }</div>
主程序使用时,声明一个对象,然后show()就可以了
</div>
</div>
</div>Rigister2d rig; reg.show();</div>
**二、多继承方式:**
</div>多继承方式中,需要从标准QWidget类和Qt设计器绘制的界面继承。
</div>多继承比单一继承方式简单直接,更具扩展性。前面类似
修改源文件及头文件
</div>//.h file#**ifndef** RIGISTER2D_H #**define** RIGISTER2D_H #**include** <QDockWidget> #**include** "ui_rigister2d.h" **class** Rigister2d : **public** QDockWidget,Ui_Rigister2d { Q_OBJECT **public**: Rigister2d(QWidget *parent = 0); ~Rigister2d(); }; #**endif** // RIGISTER2D_H</div>
</div>
</div>
//.cpp file#**include** "rigister2d.h" Rigister2d::Rigister2d(QWidget *parent) : QDockWidget(parent) { setupUi(**this**); } Rigister2d::~Rigister2d() { }</div>
</div>
主程序使用时与单一继承一致
[来自为知笔记(Wiz)](http://www.wiz.cn/i/c09d0bb5 "来自为知笔记(Wiz)")