使用Qt-creator自動生成一個窗體應用程序時會自動創建一個新的類,我的程序中名為MyDialog,類的定義為:
1 #ifndef MYDIALOG_H 2 #define MYDIALOG_H 3 4 #include <QDialog> 5 6 namespace Ui { 7 class MyDialog; 8 } 9 10 class MyDialog : public QDialog 11 { 12 Q_OBJECT 13 14 public: 15 explicit MyDialog(QWidget *parent = 0); 16 ~MyDialog(); 17 18 private: 19 Ui::MyDialog *ui; 20 }; 21 22 #endif // MYDIALOG_H
相應的構造函數為:
1 1 //構造函數 2 2 MyDialog::MyDialog(QWidget *parent) : 3 3 QDialog(parent), 4 4 ui(new Ui::MyDialog) 5 5 { 6 6 ui->setupUi(this); 7 }
其中,構造函數:MyDialog::MyDialog(QWidget *parent) : QDialog(parent),ui(new Ui::MyDialog){......}形式中,“::”前的MyDialog表示類名,“::”后的MyDialog為成員函數,其名稱與類相同,表示該類的構造函數,(QWidget *parent)為該構造函數的參數。“:”之后的部分為構造函數的初始化參數列表,其中QDialog(parent)為派生類MyDialog顯式調用父類QDialog的構造函數,並傳參,調用順序是先調用父類構造函數,再調用派生類的構造函數,若不寫調用父類的默認構造函數。 ui(new Ui::MyDialog)表示使用類內初始值對ui進行初始化,這部分可以放到函數體中實現,成為:
1 MyDialog::MyDialog(QWidget *parent) : QDialog(parent) 2 { 3 ui = new Ui::MyDialog; 4 ui->setupUi(this); 5 }