Qt5.3企业版和开源版功能区别
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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同时支持。
数据可视化是一大需求。Charts提供了通用的、可扩展的组件。
实时数据的可视化,如示波器,心率监视器,音频波,图表组件也被设计出来,用于显示流利地显示这些动态数据集。
2.2 Qt Quick Enterprise Controls
它是一个具有多种特性的工业级别外观和感觉的高级UI库,可定制,可扩展。提供了常用的,最基本的几种控件:
- 圆形仪表(如表)
- 表(直计如温度计)
- 延迟按钮
- 馅饼菜单
- 拨号
- 开关按钮
- 状态指示灯
并且它已经集成到Qt Designer中了。方便开发。
2.3 Data Visualization
可以非常方便地创建3D数据可视化图形。
主要的特性为:
- 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
不会立即执行,而是缓存起来以待时机。
讨论:企业版中,上述步骤1和步骤2肯定是被优化掉了。但是步骤3呢?优化到何种程度呢
?
2.7 Pre-Built Software Stack
预配置了一个软件协议栈,来减轻工作流程中的工具链配置等压力。可以让开发者专注于原型的开发。利用协议栈可以快速的部署在不同平台上。
2.8 Qt Purchasing
提供了一套商店购买API,可以将你的app发布到这些应用商店。支持iOS中的App Store和android中Google Play。
Qt Purchasing API是在平台的系统API上构建的,所以购买过程对于使用者来说非常熟悉,可以简化购买过程。
可以使用C++或者QML来定制开发。并提供了一些商店的实用功能,例如:获取网店应用的信息,让app使用者重新安装app而无需再次购买。
三、总结
Qt企业版总结如下:
- 完整、强大的功能和工具
- 平台的专业支持
- 应用发布无版权限制
- 完整的源代码修改
- etc…
http://www.quweiji.com/qt5-3%E4%BC%81%E4%B8%9A%E7%89%88%E5%92%8C%E5%BC%80%E6%BA%90%E7%89%88%E5%8A%9F%E8%83%BD%E5%8C%BA%E5%88%AB/
以上是关于Qt5.3企业版和开源版功能区别的主要内容,如果未能解决你的问题,请参考以下文章