Qt Designer設計 UI 文件并調用
Qt Designer設計 UI 文件并調用是本篇內容將要介紹的內容,不多說,先來看內容。
1、用designer設計一個UI.對象名保存為myui,基于QWidget類.(可以在此基礎上隨便添加一些控件之類。eg:pushButton)。保存窗體為myui,or others.
2、為了明白其具體機制,我們可以用uic將此UI文件轉換成頭文件看看。uic -o ui_myui.h myui.ui.(事實上我們最后用qmake編譯的時候,qmake會自動調用uic轉換頭文件),在此.h文件中有定義了一個類class Ui_myui,并且有一個myui以public的方式繼承Ui_myui,class myui: public Ui_myui {}
特別說明:myui即是我們用designer設計的UI實體類
3、好了,輪到我們自己定義類了,為什么要自己定義類呢?是這樣的,如果我們直接調用的話,有很大的弊端:當我們的工程很浩大的時候,如果我們要修改UI文件了,則要相應改很多源程序來繼續當前的功能,而如果我們定義一個類來繼承它的話,隨你UI怎么變,跟我關系不是很大。廢話少說,進入正題:
寫一個.h文件
- myclass.h
- #include <QtGui/QtGui>
- namespace Ui
- {
- class myui;//注:designer生成的ui類為ui_DialogClass,而我們只是用它的派生類myui
- //即:myui是ui_DialogClass的一個實體
- }
- class myclass : public QDialog//自定義一個類myclass,通過調用ui類
- {
- Q_OBJECT
- public:
- myclass(QWidget *parent = 0);//最頂層父窗口為QWidget
- ~myclass();
- private:
- Ui::myui *ui;//創建一個ui指針對象,因為designer只是設計出來一個myui實體類,是個宏觀概念,我們必須定義一個對象才能調用它
- };
- myclass.cpp
- #include "myclass.h"
- #include "ui_myui.h"
- myclass::myclass(QWidget *parent)
- :QDialog(parent),ui(new Ui::myui)
- {
- ui->setupUi(this);//使用ui類
- connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(close()));
- }
- myclass::~myclass()
- {
- delete ui;
- }
4、OK!我們的類已經定義好,寫main函數調用自定義的類
- #include<QtGui/QtGui>
#include"myclass.h"//注:為什么只要這個頭文件就可以了呢?因為當我們創建一個myclass的對象的時//候,會自動調用它的構造函數,釋放時自動調用其析構函數.事實上我們不止只用一個構造函數與析構函數,//這時候怎么辦呢?在myclass.h中聲明該函數,在myclass.cpp中寫具體實現方法.
- int main(int argc,char *argv[])
- {
- QApplication app(argc,argv);
- myclass window;
- window.show();
- return app.exec();
- }
小結:關于Qt Designer設計 UI 文件并調用的內容介紹完了,希望本篇文章對你有幫助!