Qt 5的第二個(gè)重大版本Qt 5.2的beta版終于發(fā)布了,Qt 5.2是官方一再?gòu)?qiáng)調(diào)開(kāi)發(fā)Android要使用的版本。經(jīng)過(guò)了近一年的等待,這次終于可以完成夙愿,繼續(xù)更新Qt系列教程了。在后面的教程中會(huì)盡量涉及大家經(jīng)常問(wèn)到、急需解決的問(wèn)題,也會(huì)盡可能的把最新的技術(shù)和最炫的界面效果展示給大家。
創(chuàng)新互聯(lián)專注于中大型企業(yè)的網(wǎng)站制作、做網(wǎng)站和網(wǎng)站改版、網(wǎng)站營(yíng)銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開(kāi)發(fā)的融合,累計(jì)客戶千余家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注高端網(wǎng)站設(shè)計(jì)和互聯(lián)網(wǎng)程序開(kāi)發(fā),在前進(jìn)的路上,與客戶一起成長(zhǎng)!
這里也請(qǐng)大家把心態(tài)放平穩(wěn)一些,是說(shuō)大家學(xué)習(xí)的心態(tài),也是說(shuō)我寫(xiě)教程的心態(tài)。通過(guò)這幾年的經(jīng)歷,我發(fā)現(xiàn),凡事不能急功近利,只有平常心才能出真知,只有用最樸實(shí)(有時(shí)候可能顯得不專業(yè))的語(yǔ)言來(lái)描述講解一個(gè)問(wèn)題,才會(huì)讓更多人容易讀懂,才會(huì)得到更多人的贊譽(yù)。這里不得不說(shuō),寫(xiě)教程只是我在業(yè)余時(shí)間做的事情,我的技術(shù)水平也沒(méi)有一些網(wǎng)友想的那么牛叉,之所以還要一直寫(xiě)下去,是因?yàn)橛心敲炊嗑W(wǎng)友的支持和肯定。也是在今天,我得知《Qt Creator快速入門》已經(jīng)售罄,這距該書(shū)出版還不到一年半的時(shí)間。這里再次謝謝那些支持我的朋友,我會(huì)通過(guò)更好的教程和開(kāi)源作品來(lái)感謝大家一直以來(lái)的支持!
環(huán)境:Windows 7 + Qt 5.2.0+QtCreator 3.0
目錄
一、軟件安裝
二、運(yùn)行一個(gè)Qt 4程序
三、發(fā)布Qt 5程序
內(nèi)容概要
本節(jié)講述的內(nèi)容主要有三點(diǎn):
第一,一般的Qt 4程序要在Qt 5上編譯,需要注意:
1.將main.cpp文件中的#include <QtGui/QApplication>修改為#include <QApplication>
2.在.pro項(xiàng)目文件中添加:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
第二,在Qt 5中設(shè)置應(yīng)用程序圖標(biāo),需要注意:
1.將.ico圖標(biāo)文件放到項(xiàng)目源碼目錄
2.在.pro文件中添加:RC_ICONS = myico.ico(myico.ico就是自己圖標(biāo)文件的名字)
第三,發(fā)布Qt 5程序時(shí),除了必要的dll文件以外,還需要將plugins中的platforms目錄復(fù)制過(guò)來(lái),而里面只要保留qminimal.dll和qwindows.dll兩個(gè)文件即可。
正文
一、軟件安裝
1.下載并安裝Qt 5.2
首先到Qt官方下載頁(yè)面:
http://download.qt-project.org/development_releases/qt/5.2/5.2.0-beta1/
因?yàn)槭窃赪indows下,所以下載含有Android庫(kù)的Windows版本,具體文件是:
qt-windows-opensource-5.2.0-beta1-android-x86-win32-offline.exe
這個(gè)安裝包中已經(jīng)包含了所有需要的工具(例如最新版的Qt Creator 3.0,當(dāng)然要開(kāi)發(fā)Android還是需要自己添加文件的),我們只需要下載這一個(gè)文件即可。
下載完成后,雙擊運(yùn)行。這里一般不需要做任何設(shè)置,直接點(diǎn)擊下一步直到軟件安裝完成。最后便自動(dòng)打開(kāi)了我們期盼已久的Qt Creator 3.0歡迎界面,如下圖所示。
可以看到,歡迎界面和以前布局有了一些變動(dòng),更加清晰明了。但總體來(lái)說(shuō),整個(gè)界面及內(nèi)容沒(méi)有什么變化。
2.運(yùn)行一個(gè)例子
我們點(diǎn)擊“示例”,然后選擇一個(gè)例子先來(lái)運(yùn)行一下,比如這里選擇Flickr View Example,這時(shí)會(huì)打開(kāi)該程序并跳轉(zhuǎn)到其幫助文檔界面,如下圖所示。
可以回到編輯模式簡(jiǎn)單看一下程序代碼,然后點(diǎn)擊運(yùn)行按鈕運(yùn)行該程序,效果如下圖所示。
這是個(gè)非常漂亮的圖片瀏覽程序,是用qml編寫(xiě)的,不過(guò)這個(gè)并不是這里講述的重點(diǎn),非常先進(jìn)且極具未來(lái)感的Qt Quick技術(shù)和QML語(yǔ)言會(huì)在后面專門的章節(jié)中詳細(xì)講解。這里要說(shuō)的是,Qt 5已經(jīng)是一個(gè)SDK了,它包含了開(kāi)發(fā)所需要的大部分工具,包括了Qt Creator和MinGW,并做好了關(guān)聯(lián)設(shè)置,所以我們可以看到,現(xiàn)在無(wú)需再像使用Qt 4.8那樣手動(dòng)設(shè)置就可以直接編譯運(yùn)行程序。
3.安裝調(diào)試器
我們選擇“工具”->“選項(xiàng)”菜單項(xiàng),然后打開(kāi)“構(gòu)建和運(yùn)行”頁(yè)面中的構(gòu)建套件,可以看到,這里已經(jīng)自動(dòng)檢測(cè)到了一個(gè)構(gòu)建套件。如下圖所示。
不過(guò),現(xiàn)在在構(gòu)建套件前面有個(gè)×××的感嘆號(hào),將光標(biāo)移動(dòng)到上面可以看到提示沒(méi)有設(shè)置調(diào)試器。如下圖所示。
在沒(méi)有調(diào)試器的情況下,是無(wú)法啟動(dòng)調(diào)試模式的。這里,大家可以通過(guò)手動(dòng)進(jìn)行添加。先進(jìn)入Debuggers標(biāo)簽頁(yè),可以看到現(xiàn)在這里還沒(méi)有設(shè)置調(diào)試器,點(diǎn)擊右側(cè)的Add按鈕,添加一個(gè)自定義的調(diào)試器,Name修改為gdb,Path選擇Qt 5.2安裝目錄下的tool->mingw48_32->bin中的gdb程序,我這里是C:\Qt\Qt5.2.0\Tools\mingw48_32\bin\gdb.exe,完成后點(diǎn)擊下面的應(yīng)用按鈕,效果如下圖所示。
現(xiàn)在回到構(gòu)建套件標(biāo)簽頁(yè),可以看到調(diào)試器已經(jīng)默認(rèn)選擇為了我們添加的gdb,而且以前的×××感嘆號(hào)也消失了。
我們這里只是簡(jiǎn)單介紹了一下構(gòu)建套件的設(shè)置,至于如何添加設(shè)置Android開(kāi)發(fā)套件,會(huì)在后面專門的章節(jié)進(jìn)行介紹,這里就不再講解。
二、運(yùn)行一個(gè)Qt 4程序
為了盡可能演示Qt 4程序在Qt 5編譯時(shí)會(huì)出現(xiàn)的問(wèn)題,我們這里使用了一個(gè)Windows Xp下面基于Qt 4.7創(chuàng)建的Qt Gui應(yīng)用程序。這一節(jié)的目的就是讓大家作為參考,如果你也遇到了類似的情況,那么可以這樣來(lái)解決,如果沒(méi)有遇到,則可以直接跳過(guò)相關(guān)內(nèi)容。
1. 編碼問(wèn)題
我們打開(kāi)現(xiàn)有的Qt 4版本的helloworld源碼目錄,然后將helloworld.pro文件拖入到Qt Creator中打開(kāi)該項(xiàng)目,這時(shí)會(huì)跳轉(zhuǎn)到項(xiàng)目模式,進(jìn)行項(xiàng)目配置,也就是選擇構(gòu)建套件。這里默認(rèn)使用桌面版的Qt 5.2即可,如下圖所示,然后點(diǎn)擊ConfigureProject按鈕。
下面我們打開(kāi)項(xiàng)目文件列表中的helloDialog.cpp文件,因?yàn)檫@里有一行中文注釋,所以出現(xiàn)了“錯(cuò)誤:無(wú)法用”UTF-8”-編碼解碼”hellodialog.cpp”。無(wú)法編輯?!钡腻e(cuò)誤提示,這是因?yàn)樵撐募皇鞘褂肬TF-8編碼的,而其中的中文無(wú)法使用UTF-8自動(dòng)解碼造成的。為了使中文可以正常顯示,并且以后不再出現(xiàn)該錯(cuò)誤提示,我們可以通過(guò)下面的方法手動(dòng)來(lái)將文件設(shè)置為UTF-8編碼。
首先點(diǎn)擊錯(cuò)誤提示后面的選擇編碼按鈕(也可以使用“編輯”->“選擇編碼”菜單項(xiàng)),然后選擇GB18030/gb18030/ibm-1392/windows-54936一項(xiàng),最后點(diǎn)擊按編碼重新載入按鈕。如下圖所示。
完成后發(fā)現(xiàn)已經(jīng)可以正常顯示中文了,但是如果關(guān)閉項(xiàng)目重新打開(kāi),中文依然無(wú)法正常顯示。所以我們還需要繼續(xù)設(shè)置。再次選擇“編輯”->“選擇編碼”菜單項(xiàng),然后選擇UTF-8一項(xiàng),點(diǎn)擊按編碼保存按鈕。如下圖所示。
這樣設(shè)置完后,文件已經(jīng)使用UTF-8進(jìn)行保存了,后面再打開(kāi)也不會(huì)出現(xiàn)編碼錯(cuò)誤了。
2.代碼問(wèn)題
下面先直接運(yùn)行程序,這時(shí)會(huì)在問(wèn)題面板出現(xiàn)QtGui/QApplication: No such file or directory的問(wèn)題提示。如下圖所示。
我們雙擊該問(wèn)題,定位到出錯(cuò)位置,這時(shí)跳轉(zhuǎn)到了main.cpp文件中,可以看到第一個(gè)頭文件包含找不到路徑。如下圖所示。
我們可以到QtGui目錄(我這里是:C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\include\QtGui)中查看一下,發(fā)現(xiàn)這里沒(méi)有QApplication相關(guān)文件。為了更加明了和準(zhǔn)確的講解該問(wèn)題,我們?cè)赒t Creator中創(chuàng)建一個(gè)基于Qt 5.2的GUI程序作為參照。
選擇“新建”->“新建文件或項(xiàng)目”菜單項(xiàng),這里可以看到在應(yīng)用程序中第一個(gè)是QtWidgets Application,而不再是Qt 4中熟悉的Qt GuiApplication,我們選擇它作為模板。然后添加項(xiàng)目名稱為helloqt,路徑大家選擇一個(gè)沒(méi)有中文的目錄即可。下面的Kit就選擇默認(rèn)的DesktopQt 5.2,然后類信息不用更改。
完成之后,我們先運(yùn)行一下新建的helloqt程序,發(fā)現(xiàn)是沒(méi)有問(wèn)題的。這時(shí)打開(kāi)其main.cpp文件,發(fā)現(xiàn)#include <QApplication>是這樣寫(xiě)的,這里沒(méi)有添加QtGui。現(xiàn)在我們更改前面helloworld項(xiàng)目中main.cpp文件的頭文件包含為#include <QApplication>,不過(guò),改成這樣后依然提示找不到文件。
現(xiàn)在我們可以對(duì)照helloqt文件的內(nèi)容,看看還有哪里與我們Qt 4程序不同。這時(shí),在helloqt.pro文件中會(huì)很明顯發(fā)現(xiàn)一行代碼:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
這行代碼的大致意思是:在高于Qt4的版本中要添加QT += widgets,也就是說(shuō)要使用widgets模塊,這里的widgets模塊到底包含了什么內(nèi)容,有什么作用?這些問(wèn)題我們暫且不考慮,現(xiàn)在將這行代碼復(fù)制到helloworld.pro中,然后運(yùn)行helloworld程序,發(fā)現(xiàn)程序已經(jīng)可以可以正常運(yùn)行了。
3.應(yīng)用程序圖標(biāo)
在這一節(jié)的最后,我們?cè)傺a(bǔ)充一點(diǎn)。在Qt 4中如果要給一個(gè)程序添加應(yīng)用程序圖標(biāo),需要先有一個(gè)ico圖標(biāo)文件,然后創(chuàng)建一個(gè).rc文件,還要輸入一行怪異的代碼。而在Qt 5中這個(gè)變得非常簡(jiǎn)單,我們只需要將ico圖標(biāo)文件放到源碼目錄,然后在pro項(xiàng)目文件中添加一行代碼RC_ICONS = myico.ico即可,后面myico.ico就是自己圖標(biāo)文件的名字。
三、發(fā)布Qt 5程序
現(xiàn)在helloworld程序已經(jīng)可以編譯運(yùn)行了,下面我們將打包發(fā)布該程序。要作為發(fā)布使用,先要選擇編譯Release版本,然后運(yùn)行。完成后到編譯生成目錄(我這里是:E:\qtsrc\build-helloworld-Desktop_Qt_5_2_0_MinGW_32bit-Release\release)中將生成的helloworld.exe文件復(fù)制到一個(gè)新建的文件夾中,比如這里放到了新建的helloworld文件夾中。然后雙擊運(yùn)行helloworld程序,并根據(jù)提示到Qt 5.2的安裝目錄(我這里是:C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\bin)中將需要的dll文件復(fù)制過(guò)來(lái),一共是9個(gè)。這樣就可以在本機(jī)上運(yùn)行該程序了,但是在別的沒(méi)有安裝該版本Qt的機(jī)子上還是無(wú)法運(yùn)行,這時(shí)需要將C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\plugins中的platforms目錄復(fù)制過(guò)來(lái),而里面只要保留qminimal.dll和qwindows.dll兩個(gè)文件即可。最終效果如下圖所示。
后面就可以將該文件夾通過(guò)壓縮文件打包進(jìn)行發(fā)布了。當(dāng)然,如果程序中使用了其他模塊,可能還需要復(fù)制plugins目錄中的相應(yīng)的文件。
結(jié)語(yǔ)
對(duì)于大部分Qt 4程序而言,Qt 5沒(méi)有太大的改變,不過(guò)在升級(jí)移植的過(guò)程中還是會(huì)發(fā)現(xiàn)很多細(xì)節(jié)改動(dòng)的。這一節(jié)我們講述了Qt 5.2版的安裝、設(shè)置,然后講述了怎樣將一個(gè)Qt 4程序使用Qt 5進(jìn)行編譯運(yùn)行,最后還講述了Qt 5程序的發(fā)布。
在下一節(jié)我們將會(huì)講解Qt 5的整個(gè)框架,讓大家更加清楚Qt 5中改變了哪些模塊,增加和刪除了哪些模塊
新聞名稱:QT4--QT5升級(jí)問(wèn)題再談
文章轉(zhuǎn)載:http://chinadenli.net/article6/ghocog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、網(wǎng)站導(dǎo)航、網(wǎng)站排名、網(wǎng)站維護(hù)、網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)