发布Qt Quick桌面应用程序的方法

Qt是一款优秀的跨平台开发框架,它可以在桌面、移动平台以及嵌入式平台上运行。目前Qt 5介绍程序发布的文章帖子比较少。大家又非常想要知道如何发布Qt应用程序,于是我花了一点儿时间介绍一下如何发布Qt桌面应用程序。

上海萌梦信息科技有限公司(微博:http://weibo.com/qtdream)原创文章,首发地址:http://qtdream.com/topic/114。欢迎同行前来探讨。

上篇文章介绍了如何简单快速地发布Qt Widgets应用。目前Qt Widgets是Qt 4的技术,那么到了Qt 5了,官方当然是大力推广Qt Quick了,因此我们发现有不少人想要了解Qt Quick是如何发布应用程序的,而发布Qt Quick程序,仍然有很多值得注意的地方,否则大家很容易陷进坑里,所以这篇文章的目的就是帮助大家解决发布Qt Quick应用遇到的问题。

1、创建一个Qt Quick项目,这里我们将项目的名称命名为TestQtQuickApp:

2、其它的就没有设置了,大体相同。最后呢,这个程序在Qt Creator上顺利地运行了,运行结果如下:

3、好了,如果我要发布Hello World这个程序,那么有没有什么好的办法呢?有。和Widgets程序一样,我们只需要在Qt Creator中设置一下参数就好了:

点击右下角的小三角,这样在部署的过程中,就顺利地将Qt以及QML的依赖项复制过来了。这回我们在Windows XP上尝试一下,结果出人意料,出现了这样的对话框:

这个对话框出现的原因可能是msvcrt.dll在XP这个版本没有vsprintf_s这样的动态库。目前还暂时没有找到好的解决思路,稍后我再单独研究一下,看这个事情该如何解决。

不过即使出现了这样的对话框,也不碍事。我们的hello world程序依然能够打得开:

这里要特别注意的是,即使按照windeployqt这样的方法添加Qt Quick程序的依赖项,我们发现,在目标系统上,双击依然无法显示界面。这是什么原因呢?原来,windeployqt做的仅仅是“表面”工夫,由于Qt各个模块依赖的复杂性,windeployqt并没有包含进来。比如说你的Qt Quick程序原来的是Local Storage模块,它可能只将Local Storage的依赖复制过来了,其实,Local Storage依赖的是Qt5Sql.dll,这个却没有引入。所以才会导致一些模块无法运行,这也是为什么很多人按照上述方法部署程序却依然无法顺利运行程序的原因。一个比较好的解决办法就是,哪怕你的程序大部分都是用QML语言编写的,在main.cpp中,添加类似#include <QtSql>这样依赖,pro文件中添加QT += sql这样的依赖,这样可以顺利地将Qt5的应用程序部署到客户机器上。

下面就是我将Qt 5.5最有名的一个例子程序planets部署到客户2006年购置的Windows XP机器上。看看效果吧。

图一:Windows 10效果

图二:客户Windows XP上效果

http://blog.csdn.net/gamesdev/article/details/50449856

发布Qt Quick桌面应用程序的方法(使得planets在XP上运行)的更多相关文章

  1. 发布Qt Quick桌面应用程序的方法

    这个对话框出现的原因可能是msvcrt.dll在XP这个版本没有vsprintf_s这样的动态库.目前还暂时没有找到好的解决思路,稍后我再单独研究一下,看这个事情该如何解决. 解决办法有很多,我没有一 ...

  2. 发布Qt Widgets桌面应用程序的方法(自定义进程步骤,用QT Creator直接生成)

    发布Qt Widgets桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序 ...

  3. 发布Qt Widgets桌面应用程序的方法

    Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于是我花了一点儿时间介绍一下如何发布Qt桌 ...

  4. 公布Qt Widgets桌面应用程序的方法

    公布Qt Widgets桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它能够在桌面.移动平台以及嵌入式平台上执行.眼下Qt 5介绍程序公布的文章帖子比較少.大家又很想要知道怎样公布Qt应用程序, ...

  5. 编写简单的Mapreduce程序并部署在Hadoop2.2.0上运行

    今天主要来说说怎么在Hadoop2.2.0分布式上面运行写好的 Mapreduce 程序. 可以在eclipse写好程序,export或用fatjar打包成jar文件. 先给出这个程序所依赖的Mave ...

  6. 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”

    原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...

  7. vs2012+ winform+.net4.0发布如何在xp上运行

    今天在英文版vs2013打包发布4.0(非4.0 client)的winform时,遇到了在xp上无法运行的情况,.net framework 4.0在xp上已安装.在打包前,winform工程,即菜 ...

  8. 打包发布 Qt Quick/Widgets 程序

    使用的QT自带的部署工具(windeployqt.exe,路径QT安装路径),版本替换debug/release Qt Quick "C:\Qt\Qt5.8.0\5.8\mingw53_32 ...

  9. 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案

    笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...

随机推荐

  1. quartz结合多线程处理后台业务

    最近项目中有播放视频的需求,技术选型采用UMS播放器,免费版只能播放FLV格式的视频文件,因此需要对用户上传的视频进行格式转换,转换工具为FormatFactory,功能还是比较强大的.但是面临的一个 ...

  2. 【39.77%】【codeforces 724B】Batch Sort

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  3. jquery 源码学习(三)

    jQuery源码分析-03构造jQuery对象-源码结构和核心函数,需要的朋友可以参考下.   作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 毕竟 ...

  4. Acdreamoj1116(Gao the string!)弦hash+二分法+矩阵高速功率

    Problem Description give you a string, please output the result of the following function mod 100000 ...

  5. iOS的安全性和越狱

    提到越狱,很多人第一反应大概是免费的游戏和 app. 作为软件从业人员,深知中国的大环境的特殊性.内有用户想吃免费午餐的不良付费习惯,外有行业内大头诸如某讯对创新的绞杀.大家对越狱是为了免费.盗版软件 ...

  6. 图像块的访问(填充 padding,步长 stride,窗 Window/kernel/filter)

    无填充是有填充的特例(填充为 1). utilities(matlab)-- 图像分块(image2cols.cols2image)(未填充) 1. 一个图像块 ⇒ 返回一个值 输出矩阵的大小: ou ...

  7. DDD的.NET开发框架

    基于DDD的.NET开发框架ABP实例,多租户 (Sass)应用程序,采用.NET MVC, Angularjs, EntityFramework-介绍 介绍 基于ABPZERO的多租户 (Sass) ...

  8. numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

    1. np.asarray -- numpy 风格的类型转换 从已有多维数组创建新的多维数组,数据类型可重新设置 >> B = np.asarray(A, dtype='int32') 2 ...

  9. Android的DDMS中的Threads的各个字段的含义

    在使用DDMS调试代码时,Threads窗口中各个字段的含义从网上搜了下,如下所示: 该标签页显示了如下信息: ID – a VM-assigned unique thread ID. In Dalv ...

  10. EF codefirst第一篇

    一直以来喜欢dbfirst  因为简单,一直不明白为什么codefirst会是主流,根据对ddd的学习终于知道了codefirst的目的 本文是对博客园 小崔的笔记本 文章 EF实体框架之CodeFi ...