文章原创,转载请注明链接
Qt中ui文件主要包括3种方式:直接使用法,单继承法和多继承法。 其中直接使用法和单继承法是先单纯地通过QtDesignor设计好界面以及控件信号等保存为ui文件,然后在需要ui的地方(通常是对话框等创建之前)通过UI::引用并创建UI中的控件的对象,如UI::Dialog ui,然后再创建了QDialog对话框dialog对象(dialog为ui中的对象名)之后为其套上设计的ui,即ui.setupUi(dialog),对话框显示时则和设计的ui中一样了。 单继承法这种方式也是QtCreator在创建相应的Qt GUI应用时默认的使用方式。 Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); } 对应dialog.h文件内容如下: #include <QDialog> namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: explicit Dialog(QWidget *parent = 0); ~Dialog(); private: Ui::Dialog *ui; }; 其中Dialog类声明为QDialog单继承,并且将其本身声明了一个私有的指针,然而在dialog.cpp中内容如下: #include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); } Dialog::~Dialog() { delete ui; } 构造函数的定义QDialog(parent)和ui(new Ui::Dialog)初始化列表,即完成了界面类的创建,ui指针的初始化,调用父类QDialog构造函数,创建Dialog。然后就可以通过ui指针来完成对界面的操作和控制。ui->setupUi(this);完成了界面的设置。
而多继承法则是直接将需要ui的Dialog等在定义时通过QDialog和UI类一起继承构建对应的Dialog等类,然后在该类的构造函数中通过setupUi(this)套上/设置ui即可。
参考文献: 吴迪.零基础学Qt4编程 成洁,卢紫毅.Linux窗口程序设计—Qt4精彩实例分析
|
|