1. 說明
在此說明一下IDE跟封裝的之間的關系,他們之間本質上來說沒有關系,是可以多對對的關系。
Qt開發是個比較泛的概念,Qt是由很多一系列類組成的整體,就像boost里面也有很多的類,而boost是一個整體的概念。同樣,MFC也是一個比較泛的概念,里面有很多類。
這三種都是所謂的編程或封裝的類。
visual studio是VC開發的一個IDE,eclipse似乎也可以作為VC開發的IDE。記事本也是個IDE,只是比較簡陋。QtCreator也是個IDE。
visual studio這個IDE也可以來開發“使用Qt庫”的程序。只是站在程序編譯的角度,你要告訴IDE你這個文件該怎么編譯。
維護商業版Qt的公司開發了一個“方便編譯Qt程序”的IDE,叫QtCreator,這個工具跨平台,只是相比visualstudio,這個工具的功能不太強大,想嘗試的童鞋可以試試。
你可以在任何工程中使用Qt的庫,比如使用Qt的字符處理類QString、QFile。需要注意的是,如果你的程序中使用了消息響應相關的內容,那主程序就得是QtCoreApplication。不過很多時候你不需要關注這種細節。
Qt的消息響應並不局限在界面程序,不帶界面的程序里面也會有消息處理。
當然,MFC的界面類和Qt的界面類是可以一起出現在程序里面的,不過這個只有高手才會,入門者一般不推薦這樣做。
2. 開發
1.1. 基礎知識
部署開發環境;
將qt安裝在d盤根目錄下,新建以下兩個環境變量:QMAKESPEC=win32-msvc2008、QTDIR=D:\Qt\4.6.2
往Path路徑加入”%QTDIR%\bin”
VC工程設置
設置頭文件include目錄,如下圖:
設置鏈接庫目錄:
設置依賴的庫庫文件(注意Debug和Release版本文件不要用錯):
Qt基礎知識
學習《C++ GUI Programming with Qt4》章節Chapter 1;
理解signal、slot;
(可參考幫助文檔(Home/The QtObject Model/signals and slots)章節)
參考資料:
C++ GUI Programming with Qt4
Qt Assistant幫助文檔
1.2. Qt GUI編程
對話框QDialog:
使用對話框作為信息的錄入界面;
學習《C++ GUI Programming with Qt4》Chapter2
掌握程序主窗口、菜單、工具欄、Action響應處理:
學習《C++ GUI Programming with Qt4》Chapter3
D:\Qt\4.6.2\examples\mainwindows\application;
構建程序界面的方法:
方法1、使用designer設計界面,界面直觀,適用於復雜的界面布局;
(ui文件的使用見“編程雜項\編譯UI文件”)
方法2、在界面簡單且后續很少改動的情況下直接使用代碼手工編寫界面(使用Layout);
列表控件QTreeWidget:
使用QTreeWidget顯示具有層次結構的數據;
示例代碼:
Example\TreeWidget;
1.3. 數據庫操作
連接oracle數據庫,掌握QSqlDatabase;
使用QSqlQuery實現增、刪、查、改等基本數據庫操作;
學習《C++ GUI Programming with Qt4》Chapter 13.
示例代碼:Example\Database;
1.4. 2D圖形繪制
學習《C++ GUI Programming with Qt4》Chapter8
3. 編程雜項
中文顯示
設置編碼,在構造Application時調用:
QTextCodec * pCodeC =QTextCodec::codecForName(“GB18030”);
QTextCodec::setCodecForCStrings(pCodeC);l
QTextCodec::setCodecForLocal(pCodeC);
QTextCodec::setCodecForTr(pCodeC);
構造中文內容的QString
QString strContent =QString::fromLocal8Bit(“中文內容”);
QString、CString、const char *間的轉換:
const char * szTest = “測試文字”;
CString strC = CString(szTest);
QString strQ =QString::fromLocal8Bit(szTest);
strC = QString::fromLocal8Bit((const char*)strQ.toLocal8Bit());
編譯UI文件(界面文件)
設置ui文件的編譯選項:
Command Line:
%qtdir%\bin\uic.exe $(InputPath) -o$(InputDir)ui_$(InputName).h
Description:
Uic'ing $(InputName).ui ...
Outputs:
$(InputDir)ui_$(InputName).h
使用舉例:
DMSCreatePlanDlg.ui通過uic命令生成了ui_DMSCreatePlanDlg.h
DMSCreatePlanDlg.h文件:
#include “ui_DMSCreatePlanDlg.h”
class DMSCreatePlanDlg : public QDialog
{
Q_OBJECT
public:
DMSCreatePlanDlg(QWidget* pParent);
private:
Ui::DMDCreatePlanDlgui;
}
DMSCreatePlanDlg.cpp文件:
DMSCreatePlanDlg::DMSCreatePlanDlg(QWidget* pParent)
: QDialog(pParent)
{
ui.setupUi(this);
……
}
編譯帶moc信息頭文件
設置需要生成moc信息頭文件的編譯選項:
Command Line:
%qtdir%\bin\moc.exe$(InputDir)$(InputName).h
-o $( ProjectDir)moc_$(InputName).cpp
Description:
Moc'ing $(InputName).h ...
Outputs:
$( ProjectDir)moc_$(InputName).cpp
每個qt工程一般包含一個autogen.cppx文件,用來include生成的moc_.cpp文件。
元對象編譯器moc (the Meta Object Complier):
moc 分析C++源文件,如果它發現在一個頭文件(header file)中包含Q_OBJECT宏定義,然后動態的生成另外一個C++源文件,這個新的源文件包含 Q_OBJECT的實現代碼,這個新的 C++ 源文件也會被編譯、鏈接到這個類的二進制代碼中去,因為它也是這個類的完整的一部分。通常,這個新的C++ 源文件會在以前的C++ 源文件名前面加上 moc_ 作為新文件的文件名。
QWidget和QDialog的選擇
QWidget是窗口元件,可當做控件,一般用於嵌入在其他QWidget或對話框中;
QDialog是獨立的窗口,用於獨立顯示;
使用Visual Studio Add-in 1.2.3 for Qt5
使用此工具可以免除添加編譯選項的麻煩
下載地址Qt相關程序的地址
http://qt-project.org/downloads
在安裝Qt的開發插件之后,visual studio的IDE是長這樣的
在工程上右鍵多了這么幾個選項:
- 頂
- 0
- 踩