QT 4.2.2的安裝(安裝完還要再編譯,注意設置Windows Path)

(安裝篇)
前奏:c++

提到C++的GUI Framework估計大多數人都會想到MFC、VCL,由於在十年前的COM時代,這兩個你們夥幾乎壟斷了整個C++ windows平臺上應用程序的開發市場, 可是最近幾年,隨着.NET framework的推出。使得MFC這樣本來就很是醜陋,麻煩的framework開始風光再也不了,我也學過幾天的MFC,那種宏做爲消息滿天飛的編程風格讓我很快就放棄了,幾回和朋友的交流中,咱們都認爲C++其實不太適合作GUI程序,可是我必須面對一個問題:當我須要用C++寫個GUI程序的時候,我該用什麼?我一直很是猶豫,很顯然,我不太願意用MFC,我也不太願意爲了VCL再去學一個IDE的用法,並且我不得不用C++寫GUI的時候每每是在非windows平臺上,顯然上面兩個framework就更不符合這個要求了。通過了一番調查,我最終選擇了Qt這個庫,因而也打算在這個blog上開一個學習手記系列。shell


下載:編程

好了,如今先讓咱們搭建工做環境,講述Linux上的Qt環境設置的文章網上不少,我這裏不想再累述了,有興趣的人能夠google之。我下面談在windows下的安裝和設置:首先,咱們都知道,Qt這樣的開源產品和GCC編譯器的密切關係,因此首先咱們必須有MinGW環境,那麼第一步,就必須先安裝MinGW,我這裏推薦一個IDE,dev-cpp,他是基於MinGW的一款C++ IDE,自帶了MinGW,集成了gcc、g++、gdb等工具,很是有用。下載地址以下:
http://www.bloodshed.net/devcpp.htmwindows


接着,咱們須要下載Qt了,熟悉開源產品的朋友都知道,這種產品一般有兩種安裝方式:第一,源碼安裝,這個下載後,在命令行(shell)進行本地編譯便可,這個在Linux下安裝軟件是很是常見的;第二,是二進制安裝,一般有自帶的GUI界面的圖形安裝想到,在windows下一般是這種安裝方式,其實那種安裝方式和操做系統沒什麼必然的聯繫,只是一種習慣而已,既然咱們是在windows下,那麼就入鄉還俗,用第二種方式,咱們須要下載Qt的Runtime for MinGW包,地址以下:
http://www.trolltech.com/服務器


安裝:網絡

下載以後,你會獲得一個qt-win-opensource-4.2.2-mingw.exe文件,雙擊後啓動安裝程序,和一般安裝windows程序同樣基本上只要一路next便可,只有一個地方要特別注意,就是他會問你MinGW的路徑,你若是安裝的就是MinGW,那麼就寫X:/MinGW(X是你安裝MinGW所在的目錄),若是你安裝的是dev-c++就寫你安裝他所在的目錄,以下圖所示:app

固然你也能夠選擇這個時候在線安裝MinGW,但是這樣就取決於網絡情況了(這裏是直接鏈接國外的服務器的,通常會很慢,常常斷線),這裏不鼓勵使用。最後,等嚮導完成後,你會發現你的開始菜單裏多出一項Qt by Trolltech v4.2.2 (OpenSource)菜單項,到這裏還沒最終完事,由於Qt沒還沒創建debug庫,會致使在安裝目錄以外你不能運行Qt程序,所以展開該菜單項,選擇Qt 4.2.2 (Build Debug Libraries),就會自動編譯debug庫,編譯時間很長,須要耐心等待,不熟悉源碼安裝的方式朋友們也能夠體驗下源碼安裝的感受(一條條命令往上飛,似乎穿越了時空,-_-b)……函數


設置:工具

雖然,qt自帶了命令行環境(Qt 4.2.2 Command Prompt),可是咱們可能仍是但願把環境變量全局化,所以咱們能夠右擊"個人電腦->屬性->高級->環境變量->系統變量的path"值後面加上下面三個路徑:
X:/Dev-Cpp/bin
X:/Dev-Cpp/mingw32/bin
X:/Qt/4.2.2/bin
目錄之間用";"分割,至此環境搭建完成。學習


檢驗安裝:

Qt自帶了不少DOME。咱們能夠在X:/Qt/4.2.2/examples/下找到,例如咱們能夠用命令行環境進入到X:/Qt/4.2.2/examples/tutorial/t1目錄下,而後運行qmake命令編譯該程序DOME,若是安裝沒問題,會在該目錄下的relese目錄下找到Qt版的Hello World程序,以下圖所示:

 

 

(入門篇)

按 照習慣,學習一個庫,通常從寫一個Hello World程序開始,在上篇中咱們已經在庫的安裝目錄裏看到了這樣的例子,可是那個例子只有一個button,過於簡單了,甚至不能算是一個完整的窗體程 序,爲了比較深切的體會Qt編程的方式和思想,咱們有必要本身寫一個相對比較複雜的Hello程序,咱們的程序裏應該有一個面板裏面放置兩個控件(一個無 事件控件,和一個有事件控件)來組成咱們的程序,對於一個事件驅動的程序來講,這樣體驗纔算是比較完整的,ok,首先,咱們能夠在上一個程序的基礎上進行 擴展,qt的類名字都很直觀,使得咱們不須要藉助手冊,就能夠猜到一些控件的類名(真的不知道能夠打開Assistant查詢), 因而一個程序轉眼便敲入了,
編碼:

代碼以下:
#include <QApplication.h>
#include <QLabel.h>
#include <QWidget>
#include <QFont>
#include <QPushButton.h>
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
QWidget winform; //做爲一個主窗體
QLabel label("<h1 style='color:blue'>Hello, QT</h1>",
&winform); // Label 顯示hello信息
QPushButton button("OK", &winform); // 退出窗體按鈕
winform.resize(200,150); //設置大小
label.resize(200,100);
button.setGeometry(10, 100, 150, 40);
button.setFont(QFont("宋體",10, QFont::Bold)); //設置字體
label.setAlignment(Qt::AlignCenter);
// 設置事件關聯
QObject::connect(&button, SIGNAL(clicked()), &app, SLOT(quit()));
winform.show();
return app.exec();
}
這裏大概只有幾點須要說明:
1。這裏的頭文件和所用的類幾乎是一一對應的,所以很容易理解。
2。任何一個Qt程序都得從一個叫QApplication的類對象開始,他引入來自入口函數main的參數,返回成員函數exec()的運行結果。
3。能夠用於面板的控件有不少,就咱們這樣的需求,一個QWidget足夠了。
4。QObject::connect(&button, SIGNAL(clicked()), &app, SLOT(quit()));這句代碼肯定了button控件須要響應的單擊(click)事件和事件的處理函數(quit())的關聯。


編譯:

OK, 編碼完成,保存爲一個cpp文件(好比Qhello.cpp)到一個臨時目錄下(好比E:/tmp/),而後打開咱們的命令行環境,進入這個臨時目錄,首 先,要創建一個Qt工程文件,輸入命令qmake -project 回車後咱們獲得一個名叫qt.pro的工程文件,接着咱們要創建makefile文件(這個文件會設定好每個編譯選項,以方便咱們後來的編譯),繼續輸 入命令qmake,這樣咱們就在該目錄下看到了三個makefile文件:
Makefile.Debug:編譯Debug版(即帶Debug信息的版本,通常用於測試和調試)的編譯選項。
Makefile.Release:編譯Release版(即不帶Debug信息的版本,通常用於產品的發佈)的編譯選項。
Makefile :上面兩個文件的總聚合器,他用於直接響應make命令。
最 後在命令行裏輸入make命令,編譯該工程,該工程默認生成的是Debug版程序,你能夠在debug子目錄下找到,若是須要更改源碼,改完後,從新 make就能夠了,若是沒有加入新文件,無需更改makefile和工程文件。若是肯定能夠發佈,能夠輸入make release命令來生成Release版本(在Release子目錄下)。

http://blog.csdn.net/henreash/article/details/3541311

相關文章
相關標籤/搜索