真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

QT4--QT5升級問題再談-創(chuàng)新互聯(lián)

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

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)長子免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

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

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

目錄


一、軟件安裝

二、運行一個Qt 4程序

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

內(nèi)容概要


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

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

1.將main.cpp文件中的#include 修改為#include 

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

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

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還是需要自己添加文件的),我們只需要下載這一個文件即可。

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

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

2.運行一個例子

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

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

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

3.安裝調(diào)試器

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

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

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

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

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

二、運行一個Qt 4程序

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

1. 編碼問題

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

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

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

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

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

2.代碼問題

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

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

     我們可以到QtGui目錄(我這里是:C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32\include\QtGui)中查看一下,發(fā)現(xiàn)這里沒有QApplication相關(guān)文件。為了更加明了和準確的講解該問題,我們在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 是這樣寫的,這里沒有添加QtGui。現(xiàn)在我們更改前面helloworld項目中main.cpp文件的頭文件包含為#include ,不過,改成這樣后依然提示找不到文件。

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

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

這行代碼的大致意思是:在高于Qt4的版本中要添加QT += widgets,也就是說要使用widgets模塊,這里的widgets模塊到底包含了什么內(nèi)容,有什么作用?這些問題我們暫且不考慮,現(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目錄中的相應的文件。

結(jié)語


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

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


文章題目:QT4--QT5升級問題再談-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/shhje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部