鍍金池/ 教程/ C/ Hello, world!
Qt 容器和算法拾遺
自定義 model 之一
反走樣
Hello, world!
Qt 容器類之關(guān)聯(lián)存儲(chǔ)容器
QStringListModel
拖放技術(shù)之一
狀態(tài)欄
QTreeWidget
拖放技術(shù)之二
通用算法
event()
Qt 學(xué)習(xí)之路(18): Qt 標(biāo)準(zhǔn)對(duì)話框之 QInputDialog
Qt 容器類之遍歷器和隱式數(shù)據(jù)共享
QListWidget
Meta-Object 系統(tǒng)
事件接收與忽略
Qt 學(xué)習(xí)之路(tip): parent 參數(shù)
Qt 標(biāo)準(zhǔn)對(duì)話框之 QColorDialog
QPainter(續(xù))
國(guó)際化(下)
漸變填充
自定義委托
創(chuàng)建 shared library
model-view 架構(gòu)
Graphics View Framework
自定義拖放數(shù)據(jù)對(duì)象
QSortFilterProxyModel
國(guó)際化(上)
組件布局
自定義 Model 之三
事件過濾器
QDirModel
Hello, world!(續(xù))
Qt 標(biāo)準(zhǔn)對(duì)話框之 QFileDialog
自定義 model 之二
深入了解信號(hào)槽
坐標(biāo)變換
剪貼板操作
QTableWidget
QByteArray 和 QVariant
創(chuàng)建一個(gè)對(duì)話框(下)
Qt 學(xué)習(xí)之路(32): 一個(gè)簡(jiǎn)易畫板的實(shí)現(xiàn)(Graphics View)
文本文件讀寫
自定義事件
編寫跨平臺(tái)的程序
MainWindow
初探信號(hào)槽
Qt 學(xué)習(xí)之路(17): Qt 標(biāo)準(zhǔn)對(duì)話框之 QMessageBox
繪圖設(shè)備
菜單和工具條(續(xù))
二進(jìn)制文件讀寫
QString
事件(event)
菜單和工具條
QPainter
Qt 容器類之順序存儲(chǔ)容器
進(jìn)程間交互
API 文檔的使用
創(chuàng)建一個(gè)對(duì)話框(上)
一個(gè)簡(jiǎn)易畫板的實(shí)現(xiàn)(QWidget)

Hello, world!

任何編程技術(shù)的學(xué)習(xí)第一課基本上都會(huì)是 Hello, world!,我也不想故意打破這個(gè)慣例——照理說,應(yīng)該首先回顧一下 Qt 的歷史,不過即使不說這些也并無大礙。

或許有人總想知道,Qt 這個(gè)單詞是什么意思。其實(shí),這并不是一個(gè)縮寫詞,僅僅是因?yàn)樗陌l(fā)明者,TrollTech 公司的 CEO,Haarard Nord 和 Trolltech 公司的總裁 Eirik Chambe-Eng 在聯(lián)合發(fā)明 Qt 的時(shí)候并沒有一個(gè)很好的名字。在這里,字母 Q 是 Qt 庫(kù)中所有類的前綴——這僅僅是因?yàn)樵贖aarard 的 emacs 的字體中,這個(gè)字母看起來特別的漂亮;而字母 t 則代表“toolkit”,這是在 Xt( X toolkit )中得到的靈感。

順便說句,Qt 原始的公司就是上面提到的 Trolltech,貌似有一個(gè)中文名字是奇趣科技——不過現(xiàn)在已經(jīng)被 Nokia 收購(gòu)了。因此,一些比較舊的文章里面會(huì)提到 Trolltech 這個(gè)名字。

好了,閑話少說,先看看 Qt 的開發(fā)吧!事先說明一下,我是一個(gè)比較懶的人,不喜歡配置很多的東西,而 Qt 已經(jīng)提供了一個(gè)輕量級(jí)的 IDE,并且它的網(wǎng)站上也有 for Eclipse 和 VS 的開發(fā)插件,不過在這里我并不想用這些大塊頭 :)

Qt 有兩套協(xié)議——商業(yè)版本和開源的 LGPL 版本。不同的是前者要收費(fèi),而后者免費(fèi),當(dāng)然,后者還要遵循 LGPL 協(xié)議的規(guī)定,這是題外話。

Qt 的網(wǎng)址是 https://qt.nokia.com/downloads,不過我打開這個(gè)站點(diǎn)總是很慢,不知道為什么。你可以找到大大的 LGPL/Free 和 Commercial,好了,我選的是 LGPL 版本的,下載包蠻大,但是下載并不會(huì)很慢。下載完成后安裝就可以了,其它不用管了。這樣,整個(gè) Qt 的開發(fā)環(huán)境就裝好了——如果你需要的話,也可以把 qmake 所在的目錄添加進(jìn)環(huán)境變量,不過我就不做了。

安裝完成后會(huì)有個(gè) Qt Creator 的東西,這就是官方提供的一個(gè)輕量級(jí) IDE,不過它的功能還是蠻強(qiáng)大的。運(yùn)行這個(gè)就會(huì)發(fā)現(xiàn),其實(shí) Qt 不僅僅是 Linux KDE 桌面的底層實(shí)現(xiàn)庫(kù)。而且是這個(gè) IDE 的實(shí)現(xiàn) :) 這個(gè) IDE 就是用 Qt 完成的。

Qt Creator 左面從上到下依次是 Welcome(歡迎頁(yè)面,就是一開始出現(xiàn)的那個(gè));Edit(我們的代碼編輯窗口);Debug(調(diào)試窗口);Projects(工程窗口);Help(幫助,這個(gè)幫助完全整合的 Qt 的官方文檔,相當(dāng)有用);Output(輸出窗口)。

下面我們來試試我們的 Hello, world! 吧!

在 Edit 窗口空白處點(diǎn)右鍵,有 New project... 這里我們選第三項(xiàng),Qt Gui Application。

http://wiki.jikexueyuan.com/project/learn-road-qt/images/1.png" alt="" />

然后點(diǎn)擊 OK,來到下一步,輸入工程名字和保存的位置。

http://wiki.jikexueyuan.com/project/learn-road-qt/images/2.png" alt="" />

點(diǎn)擊 Next,來到選擇庫(kù)的界面。這里我們系統(tǒng)默認(rèn)為我們選擇了 Qt core 和 GUI,還記得我們建的是Gui Application 嗎?嗯,就是這里啦,它會(huì)自動(dòng)為我們加上 gui 這個(gè)庫(kù)?,F(xiàn)在應(yīng)該就能看出,Qt 是多么龐大的一個(gè)庫(kù),它不僅僅有 Gui,而且有 Network,OpenGL,XML 之類。不過,現(xiàn)在在這里我們不作修改,直接 Next。

http://wiki.jikexueyuan.com/project/learn-road-qt/images/3.png" alt="" />

下一個(gè)界面需要我們定義文件名,我們不修改默認(rèn)的名字,只是為了清除起見,把 generate form 的那個(gè)勾去掉即可。

http://wiki.jikexueyuan.com/project/learn-road-qt/images/4.png" alt="" />

Next 之后終于到了 Finish 了——漫長(zhǎng)的一系列??!檢查無誤后 Finish 就好啦!

http://wiki.jikexueyuan.com/project/learn-road-qt/images/5.png" alt="" />

之后可以看到,IDE 自動(dòng)生成了四個(gè)文件,一個(gè).pro 文件,兩個(gè).cpp 和一個(gè).h。這里說明一下,.pro 就是工程文件(project),它是 qmake 自動(dòng)生成的用于生產(chǎn) makefile 的配置文件。這里我們先不去管它。main.cpp 里面就是一個(gè) main 函數(shù),其他兩個(gè)文件就是先前我們?cè)?jīng)指定的文件名的文件。

http://wiki.jikexueyuan.com/project/learn-road-qt/images/6.png" alt="" />

現(xiàn)在,我們把 main.cpp 中的代碼修改一下:

#include <QtGui/QApplication> 
#include <QLabel> 

int main(int argc, char *argv[]) 
{ 
        QApplication a(argc, argv); 
        QLabel *label = new QLabel("Hello, world!"); 
        label->show(); 
        return a.exec(); 
}

修改完成后保存。點(diǎn)擊左下角的綠色三角鍵,Run。一個(gè)小小的窗口出現(xiàn)了——

http://wiki.jikexueyuan.com/project/learn-road-qt/images/7.png" alt="" />

好了!我們的第一個(gè) Qt 程序已經(jīng)完成了。

PS:截了很多圖,說得詳細(xì)些,以后可就沒這么詳細(xì)的步驟啦,嘿嘿…相信很多朋友應(yīng)該一下子就能看明白這個(gè) IDE 應(yīng)該怎么使用了的,無需我多費(fèi)口舌。呵呵。

下一篇中,將會(huì)對(duì)這個(gè) Hello, world!做一番逐行解釋!

本文出自 “豆子空間” 博客,請(qǐng)務(wù)必保留此出處 http://devbean.blog.51cto.com/448512/194031