Qt5.3企业版和开源版功能区别

一、综述

  • Qt企业版(Qt Enterprise)主要包括:
  • 更完整的Qt库
  • Qt Creator Enterprise IDE
  • 商业授权
  • Digia公司的技术支持
  • Qt云服务

二、企业版的功能特性

参看官方文档。

2.1 Charts

Charts是QT提供的图表模块。他提供了非常简便的APIs来绘制令人惊叹的Line, Spline,Area,Scatter,Pie,Donut,Bar,Polar和Box-and-Whiskers表。

支持Qt5/Qt4.8/Qt4.7。

C++和Qt Quick同时支持。

Qt5.3企业版和开源版功能区别_第1张图片

数据可视化是一大需求。Charts提供了通用的、可扩展的组件。

实时数据的可视化,如示波器,心率监视器,音频波,图表组件也被设计出来,用于显示流利地显示这些动态数据集。

2.2 Qt Quick Enterprise Controls

它是一个具有多种特性的工业级别外观和感觉的高级UI库,可定制,可扩展。提供了常用的,最基本的几种控件:

  • 圆形仪表(如表)
  • 表(直计如温度计)
  • 延迟按钮
  • 馅饼菜单
  • 拨号
  • 开关按钮
  • 状态指示灯

并且它已经集成到Qt Designer中了。方便开发。

2.3 Data Visualization

可以非常方便地创建3D数据可视化图形。

datavis

主要的特性为:

  • Multiple data visualization options: 3D Bars, 3D Scatter, and 3D Surface
  • 2D slice views of the 3D data
  • Render graphs into images
  • Interactive data: rotate, zoom, and highlight data using mouse or touch
  • Uses OpenGL for rendering the data
  • Qt 5 C++ and Qt Quick 2 support
  • Customizable axes for data - control viewable data window with axis ranges
  • Linear and logarithmic scales
  • Customizable input handling
  • Customizable scene handling - full control of cameras and lights
  • Customizable themes
  • Add custom 3D objects to highlight data areas
  • Optimizations for Big Data

2.4 Qt Enterprise Tooling

提供了优秀的工具链来简化开发流程。除了预先配置的交叉编译工具链,你可以通过USB或IP连接直接部署到你的目标设备。远程调试功能也内置了。

  • Qt Quick Enterprise Designer
  • QML Enterprise Profiler可以支持更深层次的堆栈性能分析。更精微地找出细小代码片段对应用程序产生的影响。它可以显示每帧画面花费多长时间来渲染,这与业务数据息息相关。
  • 支持手机终端的直接打包部署和远程调试功能。

2.5 Virtual Keyboard

提供了一个可扩展的虚拟键盘,支持触屏。容易定制外观和自定义图形。内置了两种风格:复古和现代。

特性列表(见官网):

  • C++后端,Qt Quick UI前端
  • 完全可定制的图形是样式
  • 对不同屏幕尺寸和分辨率具有很好的扩展性
  • 对于不同语种键盘布局具有良好支持,例如阿拉伯,英语,西班牙,中文等等
  • 自动收起,字符预览和可选择字符列表,例如方言和自己添加的字符
  • 可作为qt程序默认的输入法
  • 单词预测
  • 支持中文拼音
  • 可以使用C++和Qt Quick APIs与其他输入法交互而扩展
  • 支持5种导航方式,键选择使用箭头键和回车键

2.6 Qt Quick Compiler

提供了一个Qt快速编译工具,将qml文件编译成二进制代码,从而不再需要将qml连同主程序一同发布。官方文档总结为三个方面。

载入速度提升:动态载入qml文件可以预解析,并且解析步骤可以在初始化的时候跳过。这大大优化了Qt Quick实例的启动时间。

最佳的性能:当载入时间较长时,不同平台的性能差异较大。所以在一些平台中,禁止了动态代码生成,例如iOS和WinRT。

提高了安全性:由于qml都被编译成二进制了,所以可以防止逆向工程。

另外:非企业版中,qml载入有三个步骤(见参考文献1和参考文献2):

  • 解析(Parse)

将qml解析成抽象语法树(在qml层面,包括对象、属性、值)。

  • 编译(Compile)

通过一个编译器(它的包装类为QQmlCompiler,底层实现是v8引擎的定制)将qml抽象语法树与C++对象对应起来,并编译为QQmlCompileredData对象。但这种过程不是简单的对应,需要处理很多细节。

这个步骤比第一步解析步骤快得多。

这些QQmlCompileredData会缓存起来,用于重复使用。

  • 创建(Create)

QQmlCompileredData用于创建真正的C++对象。QQmlCompileredData中不仅有数据,而且有代码。其中的代码部分是字节码(bytecode),并在运行时被包装类QQmlVME解释执行。以后每一个相同qml产生的实例,就会在运行时,直接使用缓存的QQmlCompileredData来而创建,不会再经历第一个和第二个步骤。

NOTE:在这个过程中,包括了属性绑定。属性绑定实质上都是JavaScript函数。具体绑定过程为:QQmlVME评估代码,将绑定表达式包装成一个js函数,从而生成一个C++层面的QQmlBingding对象。v8引擎则将之编译成v8::Function对象(v8使用Just-in-Time,JIT compiler来生成机器码)。该v8::Function不会立即执行,而是缓存起来以待时机。

三个步骤的时耗图:
Qt5.3企业版和开源版功能区别_第2张图片

讨论:企业版中,上述步骤1和步骤2肯定是被优化掉了。但是步骤3呢?优化到何种程度呢

2.7 Pre-Built Software Stack

预配置了一个软件协议栈,来减轻工作流程中的工具链配置等压力。可以让开发者专注于原型的开发。利用协议栈可以快速的部署在不同平台上。

Qt5.3企业版和开源版功能区别_第3张图片

2.8 Qt Purchasing

提供了一套商店购买API,可以将你的app发布到这些应用商店。支持iOS中的App Store和Android中Google Play。

Qt Purchasing API是在平台的系统API上构建的,所以购买过程对于使用者来说非常熟悉,可以简化购买过程。

可以使用C++或者QML来定制开发。并提供了一些商店的实用功能,例如:获取网店应用的信息,让app使用者重新安装app而无需再次购买。

三、总结

Qt企业版总结如下:

  • 完整、强大的功能和工具
  • 平台的专业支持
  • 应用发布无版权限制
  • 完整的源代码修改
  • etc…

你可能感兴趣的:(qt,qml,开源版,企业版)