QT4--QT5升級問題再談

    Qt 5的第二個重大版本Qt 5.2的beta版終于發(fā)布了,Qt 5.2是官方一再強調開發(fā)Android要使用的版本。經(jīng)過了近一年的等待,這次終于可以完成夙愿,繼續(xù)更新Qt系列教程了。在后面的教程中會盡量涉及大家經(jīng)常問到、急需解決的問題,也會盡可能的把最新的技術和最炫的界面效果展示給大家。

創(chuàng)新互聯(lián)專注于中大型企業(yè)的網(wǎng)站制作、做網(wǎng)站和網(wǎng)站改版、網(wǎng)站營銷服務,追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術與技術開發(fā)的融合,累計客戶千余家,服務滿意度達97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運用,我們將一直專注高端網(wǎng)站設計和互聯(lián)網(wǎng)程序開發(fā),在前進的路上,與客戶一起成長!

       這里也請大家把心態(tài)放平穩(wěn)一些,是說大家學習的心態(tài),也是說我寫教程的心態(tài)。通過這幾年的經(jīng)歷,我發(fā)現(xiàn),凡事不能急功近利,只有平常心才能出真知,只有用最樸實(有時候可能顯得不專業(yè))的語言來描述講解一個問題,才會讓更多人容易讀懂,才會得到更多人的贊譽。這里不得不說,寫教程只是我在業(yè)余時間做的事情,我的技術水平也沒有一些網(wǎng)友想的那么牛叉,之所以還要一直寫下去,是因為有那么多網(wǎng)友的支持和肯定。也是在今天,我得知《Qt Creator快速入門》已經(jīng)售罄,這距該書出版還不到一年半的時間。這里再次謝謝那些支持我的朋友,我會通過更好的教程和開源作品來感謝大家一直以來的支持!





環(huán)境:Windows 7 + Qt 5.2.0+QtCreator 3.0





目錄


一、軟件安裝

二、運行一個Qt 4程序

三、發(fā)布Qt 5程序





內容概要



本節(jié)講述的內容主要有三點:



第一,一般的Qt 4程序要在Qt 5上編譯,需要注意:

1.將main.cpp文件中的#include <QtGui/QApplication>修改為#include <QApplication>

2.在.pro項目文件中添加:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets



第二,在Qt 5中設置應用程序圖標,需要注意:

1.將.ico圖標文件放到項目源碼目錄

2.在.pro文件中添加:RC_ICONS = myico.ico(myico.ico就是自己圖標文件的名字)



第三,發(fā)布Qt 5程序時,除了必要的dll文件以外,還需要將plugins中的platforms目錄復制過來,而里面只要保留qminimal.dll和qwindows.dll兩個文件即可。






正文



一、軟件安裝



1.下載并安裝Qt 5.2



首先到Qt官方下載頁面:

http://download.qt-project.org/development_releases/qt/5.2/5.2.0-beta1/


因為是在Windows下,所以下載含有Android庫的Windows版本,具體文件是:

qt-windows-opensource-5.2.0-beta1-android-x86-win32-offline.exe


這個安裝包中已經(jīng)包含了所有需要的工具(例如最新版的Qt Creator 3.0,當然要開發(fā)Android還是需要自己添加文件的),我們只需要下載這一個文件即可。


下載完成后,雙擊運行。這里一般不需要做任何設置,直接點擊下一步直到軟件安裝完成。最后便自動打開了我們期盼已久的Qt Creator 3.0歡迎界面,如下圖所示。







可以看到,歡迎界面和以前布局有了一些變動,更加清晰明了。但總體來說,整個界面及內容沒有什么變化。




2.運行一個例子



我們點擊“示例”,然后選擇一個例子先來運行一下,比如這里選擇Flickr View Example,這時會打開該程序并跳轉到其幫助文檔界面,如下圖所示。






可以回到編輯模式簡單看一下程序代碼,然后點擊運行按鈕運行該程序,效果如下圖所示。






這是個非常漂亮的圖片瀏覽程序,是用qml編寫的,不過這個并不是這里講述的重點,非常先進且極具未來感的Qt Quick技術和QML語言會在后面專門的章節(jié)中詳細講解。這里要說的是,Qt 5已經(jīng)是一個SDK了,它包含了開發(fā)所需要的大部分工具,包括了Qt Creator和MinGW,并做好了關聯(lián)設置,所以我們可以看到,現(xiàn)在無需再像使用Qt 4.8那樣手動設置就可以直接編譯運行程序。




3.安裝調試器



我們選擇“工具”->“選項”菜單項,然后打開“構建和運行”頁面中的構建套件,可以看到,這里已經(jīng)自動檢測到了一個構建套件。如下圖所示。






不過,現(xiàn)在在構建套件前面有個×××的感嘆號,將光標移動到上面可以看到提示沒有設置調試器。如下圖所示。






在沒有調試器的情況下,是無法啟動調試模式的。這里,大家可以通過手動進行添加。先進入Debuggers標簽頁,可以看到現(xiàn)在這里還沒有設置調試器,點擊右側的Add按鈕,添加一個自定義的調試器,Name修改為gdb,Path選擇Qt 5.2安裝目錄下的tool->mingw48_32->bin中的gdb程序,我這里是C:\Qt\Qt5.2.0\Tools\mingw48_32\bin\gdb.exe,完成后點擊下面的應用按鈕,效果如下圖所示。






現(xiàn)在回到構建套件標簽頁,可以看到調試器已經(jīng)默認選擇為了我們添加的gdb,而且以前的×××感嘆號也消失了。


我們這里只是簡單介紹了一下構建套件的設置,至于如何添加設置Android開發(fā)套件,會在后面專門的章節(jié)進行介紹,這里就不再講解。




二、運行一個Qt 4程序



       為了盡可能演示Qt 4程序在Qt 5編譯時會出現(xiàn)的問題,我們這里使用了一個Windows Xp下面基于Qt 4.7創(chuàng)建的Qt Gui應用程序。這一節(jié)的目的就是讓大家作為參考,如果你也遇到了類似的情況,那么可以這樣來解決,如果沒有遇到,則可以直接跳過相關內容。




1. 編碼問題



我們打開現(xiàn)有的Qt 4版本的helloworld源碼目錄,然后將helloworld.pro文件拖入到Qt Creator中打開該項目,這時會跳轉到項目模式,進行項目配置,也就是選擇構建套件。這里默認使用桌面版的Qt 5.2即可,如下圖所示,然后點擊ConfigureProject按鈕。






下面我們打開項目文件列表中的helloDialog.cpp文件,因為這里有一行中文注釋,所以出現(xiàn)了“錯誤:無法用”UTF-8”-編碼解碼”hellodialog.cpp”。無法編輯?!钡腻e誤提示,這是因為該文件不是使用UTF-8編碼的,而其中的中文無法使用UTF-8自動解碼造成的。為了使中文可以正常顯示,并且以后不再出現(xiàn)該錯誤提示,我們可以通過下面的方法手動來將文件設置為UTF-8編碼。


       首先點擊錯誤提示后面的選擇編碼按鈕(也可以使用“編輯”->“選擇編碼”菜單項),然后選擇GB18030/gb18030/ibm-1392/windows-54936一項,最后點擊按編碼重新載入按鈕。如下圖所示。






       完成后發(fā)現(xiàn)已經(jīng)可以正常顯示中文了,但是如果關閉項目重新打開,中文依然無法正常顯示。所以我們還需要繼續(xù)設置。再次選擇“編輯”->“選擇編碼”菜單項,然后選擇UTF-8一項,點擊按編碼保存按鈕。如下圖所示。





       這樣設置完后,文件已經(jīng)使用UTF-8進行保存了,后面再打開也不會出現(xiàn)編碼錯誤了。




2.代碼問題



       下面先直接運行程序,這時會在問題面板出現(xiàn)QtGui/QApplication: No such file or directory的問題提示。如下圖所示。







我們雙擊該問題,定位到出錯位置,這時跳轉到了main.cpp文件中,可以看到第一個頭文件包含找不到路徑。如下圖所示。







       我們可以到QtGui目錄(我這里是:C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\include\QtGui)中查看一下,發(fā)現(xiàn)這里沒有QApplication相關文件。為了更加明了和準確的講解該問題,我們在Qt Creator中創(chuàng)建一個基于Qt 5.2的GUI程序作為參照。


       選擇“新建”->“新建文件或項目”菜單項,這里可以看到在應用程序中第一個是QtWidgets Application,而不再是Qt 4中熟悉的Qt GuiApplication,我們選擇它作為模板。然后添加項目名稱為helloqt,路徑大家選擇一個沒有中文的目錄即可。下面的Kit就選擇默認的DesktopQt 5.2,然后類信息不用更改。


完成之后,我們先運行一下新建的helloqt程序,發(fā)現(xiàn)是沒有問題的。這時打開其main.cpp文件,發(fā)現(xiàn)#include <QApplication>是這樣寫的,這里沒有添加QtGui?,F(xiàn)在我們更改前面helloworld項目中main.cpp文件的頭文件包含為#include <QApplication>,不過,改成這樣后依然提示找不到文件。


現(xiàn)在我們可以對照helloqt文件的內容,看看還有哪里與我們Qt 4程序不同。這時,在helloqt.pro文件中會很明顯發(fā)現(xiàn)一行代碼:


greaterThan(QT_MAJOR_VERSION, 4): QT += widgets


這行代碼的大致意思是:在高于Qt4的版本中要添加QT += widgets,也就是說要使用widgets模塊,這里的widgets模塊到底包含了什么內容,有什么作用?這些問題我們暫且不考慮,現(xiàn)在將這行代碼復制到helloworld.pro中,然后運行helloworld程序,發(fā)現(xiàn)程序已經(jīng)可以可以正常運行了。




3.應用程序圖標



       在這一節(jié)的最后,我們再補充一點。在Qt 4中如果要給一個程序添加應用程序圖標,需要先有一個ico圖標文件,然后創(chuàng)建一個.rc文件,還要輸入一行怪異的代碼。而在Qt 5中這個變得非常簡單,我們只需要將ico圖標文件放到源碼目錄,然后在pro項目文件中添加一行代碼RC_ICONS = myico.ico即可,后面myico.ico就是自己圖標文件的名字。




三、發(fā)布Qt 5程序



       現(xiàn)在helloworld程序已經(jīng)可以編譯運行了,下面我們將打包發(fā)布該程序。要作為發(fā)布使用,先要選擇編譯Release版本,然后運行。完成后到編譯生成目錄(我這里是:E:\qtsrc\build-helloworld-Desktop_Qt_5_2_0_MinGW_32bit-Release\release)中將生成的helloworld.exe文件復制到一個新建的文件夾中,比如這里放到了新建的helloworld文件夾中。然后雙擊運行helloworld程序,并根據(jù)提示到Qt 5.2的安裝目錄(我這里是:C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\bin)中將需要的dll文件復制過來,一共是9個。這樣就可以在本機上運行該程序了,但是在別的沒有安裝該版本Qt的機子上還是無法運行,這時需要將C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\plugins中的platforms目錄復制過來,而里面只要保留qminimal.dll和qwindows.dll兩個文件即可。最終效果如下圖所示。






后面就可以將該文件夾通過壓縮文件打包進行發(fā)布了。當然,如果程序中使用了其他模塊,可能還需要復制plugins目錄中的相應的文件。





結語


       對于大部分Qt 4程序而言,Qt 5沒有太大的改變,不過在升級移植的過程中還是會發(fā)現(xiàn)很多細節(jié)改動的。這一節(jié)我們講述了Qt 5.2版的安裝、設置,然后講述了怎樣將一個Qt 4程序使用Qt 5進行編譯運行,最后還講述了Qt 5程序的發(fā)布。

       在下一節(jié)我們將會講解Qt 5的整個框架,讓大家更加清楚Qt 5中改變了哪些模塊,增加和刪除了哪些模塊

新聞名稱:QT4--QT5升級問題再談
文章轉載:http://www.muchs.cn/article6/ghocog.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)網(wǎng)站導航、網(wǎng)站排名、網(wǎng)站維護、網(wǎng)站建設、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管