Windows下用Qt開發Symbian應用程式(Qt Quick版)
在上一講中,我們介紹了在Ubuntu下用Qt開發Symbian應用程式,但這是我本人嚴重不推薦的(至少目前是這樣),因為雖然Nokia提供了Linux版的Qt,但它卻不能編譯我們開發的Symbian應用程式,只能通過遠程編譯的方式勉強湊活(就是把代碼提交到Nokia伺服器,伺服器編譯好後再送回來),但速度可想而知,絕對比本地編譯慢太多了!另外還有一個原因,我的Nokia
5230已經連在了PC上,但Ubuntu就是認不出,所以每次安裝軟體時,都必須啟動虛擬器,太麻煩了!因此如果只想開發案頭的Qt應用程式,使用Linux版的Qt完全沒有問題,但如果要用Qt開發Symbian應用程式,強烈建議你在Windows下完成!下面我們從零開始,一步一步介紹如何在Windows下用Qt開發Symbian應用程式,然後把它放在我的Nokia 5230手機上。好了,開始了:
1.
安裝Qt SDK:
目前最新的Qt SDK是1.2.1版的,如果用它開發,則手機需要Qt 4.07(4)庫的支援(對於比較新的手機,應該都是支援的,沒試過)。Qt官網還提供了另外一個版本1.1.2,如果用它開發,則手機需要版本稍低的Qt 4.07(3)庫的支援。我在Nokia 5230上安裝Qt 4.07(4)庫,提示不相容,然後我又安裝了Qt 4.07(3)庫,手機沒有任何問題,看來Nokia 5230隻支援Qt 4.07(3)庫,所以,我們應該下的是Qt
SDK 1.1.2(在文末我都提供了這兩個Qt庫的下載,你自己可以試一下,看手機支援哪個Qt庫)
Qt SDK 1.1.2的是:http://www.developer.nokia.com/info/sw.nokia.com/id/84801bfe-8517-4287-9829-014c6f572127/Qt_SDK_1_1_2.html,注意選擇Windows版本,1.78G
安裝之前請確保磁碟至少有10G剩餘空間
2.
安裝過程和Linux版Qt沒多大區別,可以參考:http://blog.csdn.net/htttw/article/details/7625819,下面是一些:
選擇“Default”就可以了(還記得嗎,我們安裝Linux版的Qt時要選擇“Custom”來支援遠程編譯,不過現在不需要了)
3.
安裝完成後,開啟Qt Creator,如:
下面我們寫一個helloworld:
4.
選擇“檔案-->建立檔案或工程”,選擇“Qt Quick應用程式”:
輸入helloworld,點下一步:
由於我們只是開發Symbian應用程式,因此“案頭目標”就不需要了,選擇“塞班裝置”和“Qt模擬器”:
保持預設:
保持預設:
保持預設:
最後點擊“完成”就可以:
5.
選擇Qt左下方的目標為Qt模擬器,然後點擊下面的綠色小三角,開始運行,如:
右邊是模擬器控制視窗,呵呵,比Qt SDK 1.2.1的模擬器醜了不少(關於Qt 1.2.1的安裝可以參考:http://blog.csdn.net/htttw/article/details/7625819)
6.
然後選擇Qt左下方的目標為塞班裝置,然後點擊下面的綠色小三角,開始運行,一般來說是會出錯的,因為我們還沒有串連手機,但我串連了以後還是顯示“裝置沒有串連”的錯誤,怎麼回事???:
不過,在項目的helloworld檔案夾下已經產生了helloworld.sis,哈哈,我們可以手動把它安裝到手機裡
7.
如本文一開始提到的,安裝helloworld.sis之前需要在手機上安裝Qt 4.07(3)庫,在本文的末尾有提供連結
8.
Qt 4.07(3)庫安裝完後,就可以安裝我們的helloworld.sis啦,在Nokia 5230上的運行結果如:
呵呵,我用另一個手機拍的,效果不怎麼樣,不過可以看清,哈哈!
注意:
上面是用Qt Quick開發Symbian應用程式的,但由於我本人對Qt Quick並不熟(這是Nokia新推出的一種設計方法,我本人感覺非常不好,使用者體驗極差!),所以這裡僅作介紹。下面我用傳統的Qt設計方法(參考《C++ GUI Qt 4 編程(第二版)》)介紹如何用Qt(不是Qt Quick)開發Symbian應用程式,請參考:
Windows下用Qt開發Symbian應用程式(傳統版):http://blog.csdn.net/htttw/article/details/7632103
下面是Symbian的Qt 4.07(3) 庫:
http://download.csdn.net/detail/htttw/4352005
下面是Symbian的Qt 4.07(4) 庫:
http://download.csdn.net/detail/htttw/4352012
完成!