UI领域, 如果是桌面应用,QML可以更快速。如果是手机UI,H5绝对占优。

移动设备已经为各行业的HMI的响应性和用户友好性设定了标准。汽车,医疗设备,工业自动化系统和消费电子产品制造商现在希望为其嵌入式设备复制这种出色的用户体验。想找出我们应该选择哪种技术策略,其实我们完全可以做一个测试,一位开发人员被分配160小时,使用Qt和QML 创建嵌入式系统的演示应用程序,使用相同的小时数来创建使用HTML5的等效应用程序。

毕竟Qt提供的那一套控件库更适合桌面应用,而当年诺基亚都开发了塞班和米果的QML手机控件库,现在Ubuntu,旗鱼,黑莓都有自己的QML手机控件库。 

渲染性能上。QML有绝对统一的接口规范以及渲染机制。(跨平台是这样的)。 H5桌面系统一套,就谷歌做的好。手机WebKit嗯,但是系统对WebKit的支持也不能说表现一样。

接下来我来说说QML吧。 QML的执行引擎是基于Qt的V4引擎,V4最大的改变就是添加了类型。

添加了类型让QML的属性绑定相比于之前的版本(Qt4的QtQuick 1.x)有极其大的提升。 属性绑定(数据绑定,表达式绑定)。嗯,在QML中随处可见的属性绑定,虽然有H5中有类似数据绑定的JS库。但QML语法上就支持了。 

QML的渲染方式相较于之前的版本也有了重大的更新。 之前的版本(Qt4的QtQuick 1.x)更接近widget,虽然是Griphics/view,但是渲染更多是优先提交给cpu处理。当然,在N9(嗯,第一个完全使用QML构造应用的系统),会使用gpu,有硬件加速嘛。 

现在的QML渲染方式更倾向于优先使用显卡。(所以现在使用QML需要良好的显卡支持,例如正确安装显卡驱动)。

简单扯扯现在QML的渲染绘制机制吧。

1. 基于事件的,基于Griphics/secen 

2. 有两个线程,一个绘制,一个渲染。

3. cpu负责绘制,gpu负责渲染。 

4. 当需要重绘时,绘制线程暂停,渲染线程进行渲染,渲染完毕,绘制线程启动,绘制。

嗯,上面那个我是看Qt英文文档,自己理解的,叙述有出入。 此外,Qt正在开发的Qt3D,类比WebGL,其性能以及可部署性远大于H5的WebGL,嗯,是个重型武器。其实也反应出了QML渲染和绘制的效率。

QML vs WEB的更多相关文章

  1. Qt4 和 Qt5 模块的分类

    Qt5 与 Qt4 其中的一个区别是底层架构进行了改变,Qt5 引入了更加详细的模块化的概念,将众多功能细分到几个模块之中,Qt4 则是一种粗略的划分.本文主要对 Qt5 和 Qt4的模块进行一个简单 ...

  2. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  3. java web学习总结(三十) -------------------JSTL表达式

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  4. qml中打开本地html

    main.cpp QString tmploc = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); QDi ...

  5. 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON

    RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...

  6. java web 学习五(servlet开发1)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  7. QML官方系列教程——QML Applications

    附网址:http://qt-project.org/doc/qt-5/qmlapplications.html 假设你对Qt的官方demo感兴趣,能够參考本博客的另一个系列Qt5官方demo解析集 每 ...

  8. qml demo分析(text-字体展示)

    上一篇文章分析了一个小游戏,使用qml编写界面+js进行复杂逻辑控制,算是一个比较完整的qml示例代码了,今天就不那么继续变态啦,来看一个简单的字体示例程序吧,该示例代码比较简单,主要是展示了几个简单 ...

  9. Web从入门到放弃<5>

    <1> CSS_DOM 1,structural layer 2,presentation layer 3,behavior layer style也是一个属性 <!DOCTYPE ...

随机推荐

  1. Linux命令-统计文件中的字节数、字数、行数:wc

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...

  2. 配置tomcat全局c3p0连接池

    由于项目中多个应用访问同一个数据库,并部署在同一个tomcat下面,所以没必要每个应用都配置连接池信息,这样可能导致数据库的资源分布不均,所以这种情况完全可以配置一个tomcat的全局连接池,所涉及应 ...

  3. xcode 在哪里新建category、protocol等文件

    1.和以前新建新文件一样.2.当然选IOS啦,不过OS X也有这个选项,然后Objctive-C File. 3.在File Type里选就OK啦.

  4. 在python中配置MySQL数据库

    MySQL数据库(1) 尽管用文件形式将数据保存到磁盘,已经是一种不错的方式.但是,人们还是发明了更具有格式化特点,并且写入和读取更快速便捷的东西——数据库(如果阅读港台的资料,它们称之为“资料库”) ...

  5. How to install Mysql in the CentOS

    This article will walk through you the process of installing and updating latest MySQL 5.7.9 version ...

  6. session和cookie的联系

    前提: 一.cookie机制 正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie.然而纯粹的客户端脚本如J ...

  7. Jenkins 使用学习笔记

    3.1    Jenkins安装    2 3.1.1    Jenkins下载    2 3.1.2    Jenkins 安装    2 3.1.3    Jenkins 目录结构    3 3. ...

  8. 如何用adb抓取log?

    在Androidclient的測试过程中,有时候我们会遇到闪退等异常情况. 这时我们能够通过adb抓取log.从而给开发提供很多其它信息. 一.下载ADB.exe     在网上搜索"adb ...

  9. JVM总结篇

    Sun HotSpot VM,是JDK和Open JDK中自带的虚拟机,也是目前使用范围最广的Java虚拟机. JVM内存分布 程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号 ...

  10. C# 获取指定目录下所有文件信息

    /// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...