文章原創(chuàng),轉載請注明鏈接
Qt中ui文件主要包括3種方式:直接使用法,單繼承法和多繼承法。 其中直接使用法和單繼承法是先單純地通過QtDesignor設計好界面以及控件信號等保存為ui文件,然后在需要ui的地方(通常是對話框等創(chuàng)建之前)通過UI::引用并創(chuàng)建UI中的控件的對象,如UI::Dialog ui,然后再創(chuàng)建了QDialog對話框dialog對象(dialog為ui中的對象名)之后為其套上設計的ui,即ui.setupUi(dialog),對話框顯示時則和設計的ui中一樣了。 單繼承法這種方式也是QtCreator在創(chuàng)建相應的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)初始化列表,即完成了界面類的創(chuàng)建,ui指針的初始化,調用父類QDialog構造函數,創(chuàng)建Dialog。然后就可以通過ui指針來完成對界面的操作和控制。ui->setupUi(this);完成了界面的設置。
而多繼承法則是直接將需要ui的Dialog等在定義時通過QDialog和UI類一起繼承構建對應的Dialog等類,然后在該類的構造函數中通過setupUi(this)套上/設置ui即可。
參考文獻: 吳迪.零基礎學Qt4編程 成潔,盧紫毅.Linux窗口程序設計—Qt4精彩實例分析
|
|