在使用Qt開發時,肯定是想讓開發的項目界面統一風格;不希望每個界面都要程式員用代碼去修飾美化以及進行事件處理等等,這樣非常繁瑣,容易出錯而且沒有格調;所以我就開發一個動態鏈接庫,封裝統一的風格界面、事件處理等等;自己開發的這個庫叫做CQU;CQU庫最終提供給用戶的文件只有如下三個文件: CQU.dl ...
在使用Qt開發時,肯定是想讓開發的項目界面統一風格;不希望每個界面都要程式員用代碼去修飾美化以及進行事件處理等等,這樣非常繁瑣,容易出錯而且沒有格調;所以我就開發一個動態鏈接庫,封裝統一的風格界面、事件處理等等;自己開發的這個庫叫做CQU;
CQU庫最終提供給用戶的文件只有如下三個文件:
- CQU.dll:動態庫文件
- libCQU.a:靜態庫文件
- cquwidget.h 頭文件
先給大家看看效果圖,然後再講述怎麼使用CQU動態鏈接庫來達到快速開發的目的
一、效果圖
二、CQU外部介面
CQU庫提供的外部介面函數如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
static void init();
//設置視窗標題欄文本
void setWidgetTitleText( const QString &str);
//顯示隱藏最小化,最大化,關閉按鈕
void setWidgetBtnShow( bool bMinBtnShow, bool bMaxBtnShow, bool bCloseBtnShow);
//設置狀態欄左標簽文本
void setWidgetStatuLeftText( const QString &str);
//設置狀態欄左標簽圖像(會清除原來的文本)
void setWidgetStatuLeftPixmap( const QPixmap &pixmap);
//設置狀態欄右標簽文本
void setWidgetStatuRightText( const QString &str);
//設置狀態欄右標簽圖像(會清除原來的文本)
void setWidgetStatuRightPixmap( const QPixmap &pixmap);
//設置視窗佈局SizeConstraint
void setMainLayoutSizeConstraint(QLayout::SizeConstraint eSizeConstraint);
//設置是否視窗固定大小,不允許拉縮視窗
void setFixSizeBool( bool bFixSizeBool);
//視窗是否將被關閉
bool getClosing();
//視窗當前大小狀態
bool getBoolMaxWin();
|
三、CQU使用演示
這裡我創建一個測試工程來演示CQU庫的使用
1、使用Qt Creator創建一個GUI工程,工程名字就叫Test吧;把CQU動態庫文件(CQU.dll)放到Test工程目錄下,把CQU靜態庫文件(libCQU.a)放到Test工程目錄下,同時,把CQU提供的cquwidget.h文件也放到Test工程目錄下,得到的目錄結構如下圖所示:
其中, CQU.dll位於bin目錄下,libCQU.a位於lib目錄下,cquwidget.h位於工程主目錄下
2、編輯Test.pro文件
添加如下兩行:
DESTDIR = $$PWD/bin
LIBS += -L$$PWD/lib –lCQU
3、增加視窗
往Test工程里添加一個視窗,這麼簡單的事情,我就不詳細說了;視窗名字叫QCustomFrame類吧,你在這個視窗里隨便拖點控制項,我拖了些按鈕和一些編輯框在視窗上,如下圖所示:
這個視窗再普通、朴素不過了吧
4、應用CQU
下麵就是使用CQU庫來應用你剛纔隨便創建的視窗,見證奇跡的時刻到了;在main函數里添加如下代碼:
1 2 3 4 5 6 7 |
QCQUWidget::init();
QCustomFrame *pWidget = new QCustomFrame();
QCQUWidget objCustomBaseWidget(pWidget, true );
objCustomBaseWidget.setWidgetTitleText( "CQU Test" );
objCustomBaseWidget.setWidgetBtnShow( true , true , true );
objCustomBaseWidget.resize(pWidget->width(),pWidget->height()+HIGHT_MAX);
objCustomBaseWidget.show();
|
5、最終界面
最後生成的界面如下圖所示:
這樣方便多了吧;非常容易使用,而且穩定,項目中已使用,呵呵;能夠保持整個項目的UI界面風格統一,節省了大量的繁瑣工作。