zoukankan      html  css  js  c++  java
  • 让Qt for Windows Phone 8.1在真机上执行

    让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,希望他们能在下一个版本号中解决这个问题。

    实拍执行:



  • 相关阅读:
    集群、分布式、负载均衡区别与联系
    Android--加载大分辨率图片到内存
    Android--MP3播放器MediaPlayer
    Android--SoundPool
    Android--MediaPlayer高级
    Android--调用系统照相机拍照与摄像
    Android--SurfaceView播放视频
    Android--使用VideoView播放视频
    Android--使用Camera拍照
    Vue组件选项props
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4083683.html
Copyright © 2011-2022 走看看