讓Qt for Windows Phone 8.1在真機上執行

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   使用   sp   for   

讓Qt for Windows Phone 8.1在真機上執行

 

         前面幾篇博文是為這篇文章做鋪墊的,終於目的為的是使用Qt架構製作出可以在Windows Phone 8.1真機上執行的程式。因為Qt for WP8這一塊不完好,在加上我剛進入這一領域,所以研究的速度有點兒慢。在網上詢問了Qt項目的維護者,加上自己的一點研究,略微瞭解了Qt for Windows Phone 8的開發原理。

原創文章,反對未聲明的引用。原部落格地址:http://blog.csdn.net/gamesdev/article/details/38967749

         使用Qt開發Windows Phone 8應用而且可以執行在真機上,在前一篇文章的基礎上,須要注冊開發人員帳號,而且解鎖手機,這樣才幹順利地進行開發。

         這裡須要配合的軟體是QtSDK for Windows RunTime、Qt Creator3.1.2(綁定在Qt for Windows RunTime中)以及Visual Studio 2012以上版本號碼(含)。

讓Widgets程式在Windows Phone 8.1真機上執行

         我們先從簡單的Widgets程式開始講起。開啟QtCreator,建立一個Widgets程式。然後在main函數中輸入這些代碼:

#include <QApplication>#include <QWidget>#include <QLabel>#include <QBoxLayout>int main( int argc, char** argv ){    QApplication app( argc, argv );    QLabel* pLabel = new QLabel( QObject::tr( "Hello Windows Phone 8" ) );    QHBoxLayout* pHLayout = new QHBoxLayout;    pHLayout->addStretch( );    pHLayout->addWidget( pLabel );    pHLayout->addStretch( );    QVBoxLayout* pVLayout = new QVBoxLayout;    pVLayout->addLayout( pHLayout );    QWidget widget;    widget.setStyleSheet( "background-color: #FF0000FF" );    widget.setLayout( pVLayout );    widget.showFullScreen( );    return app.exec( );}

         使用案頭套件,執行,是這種結果:

好。接下來介紹如何移植到Windows Phone 8.1平台上。選擇套件為Windows Phone 8,然後在“構建”這一欄加入自己定義的構建步驟,例如以。

當中命令是qmake,參數是-tp vc%{sourceDir}/%{CurrentProject:Name}.pro "CONFIG+=windeployqt",工作資料夾是%{buildDir},目的是產生VisualStudio項目,讓VS繼續構建。

         然後在%{buildDir}中找到vcxproj檔案,用VisualStudio開啟。選擇deploy將其部署在手機上,然後從手機上執行,就大功告成了。就這麼簡單。

讓Quick程式在真機上執行

         接下來介紹一下QtQuick程式怎樣在Windows Phone 8.1真機上執行。

1、相同地,建立一個Qt Quick項目:

         我們先用案頭套件執行一下,是這種效果:

2、(可選)在pro檔案裡設定字型。

QtCreator在預設不設定字型FONTS的情況下,會將全部的字型打包在xap檔案裡,這種話,xap包檔案至少有10M了,降低不必要的字型,能夠將包大小降低到8M左右。我這裡是這樣設定FONTS的:

FONTS=$$[QT_INSTALL_BINS]/fonts/DejaVuSans.ttf

我們能夠在$$[QT_INSTALL_BINS]/fonts中找到全部可用的字型,當然你能夠加入你喜歡的字型,假設不設定的話,這些字型都會被打包。所以設定FONTS為一個有效字型就好了,但假設設定FONTS=,就會造成無字型可用,執行的程式會出現一個個方塊。

3、為項目加入自己定義處理步驟。

這裡方法和構建Widgets程式的一樣。

4、構建。

在%{buildDir}中找到vcxproj檔案,用Visual Studio開啟。

5、用Visual Studio構建。

然後開啟$${QTDIR}/bin/qtd3dservice程式,它會使用線上編譯著色器。藉著部署(deploy),記住部署步驟一定要在開啟qtd3dservice程式之後。

6、執行

如今程式已經在手機上了,這時不要關閉qtd3dservice,執行程式,就能夠看到結果了。

         qtd3dservice程式非常easy罷工。假設qtd3dservice程式一直顯示qt.d3dservice:Unable to get remote directory info: "?????",那麼可能是上面的步驟出錯了,或者是其他未知的錯誤。總之,刪除構建的檔案夾,從第四步開始又一次來一遍吧。

總結

         Qt的Windows Phone套件還不完好,主要體如今兩點:1、線上編譯shader須要qtd3dservice,給我們開發添加了麻煩,測試執行的時候一定要執行該程式,還easy罷工。對此計劃在Qt 5.4中去除該程式;2、不能全然脫離Visual Studio進行開發,儘管Qt Creator能夠直接執行程式,可是不是無法顯示介面(缺少qtd3dservice執行)就是字型顯示方塊。字型顯示方塊這個問題源自於winrtrunner這個程式預設定義須要打包的程式尾碼沒有.ttf,而且Qt Creator無法為Windows Phone套件產生一個map檔案。為此我在jira上提出了bug,希望他們能在下一個版本號碼中解決這個問題。

實拍執行:



讓Qt for Windows Phone 8.1在真機上執行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.