前言
以下内容引用自Qt官方网址: https://doc.qt.io/qt-5/qtquick-index.html
英文版介绍(原版介绍)
Qt Quick
The Qt Quick module is the standard library for writing QML applications. While the Qt QML module provides the QML engine and language infrastructure, the Qt Quick module provides
all the basic types necessary for creating user interfaces with QML. It provides a visual canvas and includes types for creating and animating visual components, receiving user
input, creating data models and views and delayed object instantiation.
The Qt Quick module provides both a QML API which supplies QML types for creating user interfaces with the QML language, and a C++ API for extending QML applications with C++ code.
Note: A set of Qt Quick-based UI controls is also available to create user interfaces. See Qt Quick Controls for more information.
For those new to QML and Qt Quick, please see QML Applications for an introduction to writing QML applications.
Important Concepts in Qt Quick
Qt Quick provides everything needed to create a rich application with a fluid and dynamic user interface. It enables user interfaces to be built around the behavior of user interface
components and how they connect with one another, and it provides a visual canvas with its own coordinate system and rendering engine. Animation and transition effects are a first
class concept in Qt Quick, and visual effects can be supplemented through specialized components for particle and shader effects.
中文版介绍(译文)
Qt快速
Qt Quick模块是用于编写QML应用程序的标准库。虽然Qt的QML模块提供QML引擎和语言基础设施方面,Qt Quick的模块提供了所有必要的与QML创建用户界面的基本类型。它提供了一个视觉画布,并包括用于创建和动画化视觉组件,
接收用户输入,创建数据模型和视图以及延迟对象实例化的类型。
Qt Quick模块既提供QML API(用于提供使用QML语言创建用户界面的QML类型),又提供C ++ API(用于使用C ++代码扩展QML应用程序)。
注意:一组基于Qt Quick的UI控件也可用于创建用户界面。有关更多信息,请参见Qt快速控制。
对于QML和Qt Quick的新手,请参阅QML应用程序以获取编写QML应用程序的介绍。
Qt Quick中的重要概念
Qt Quick提供了创建具有动态和动态用户界面的丰富应用程序所需的一切。它使用户界面能够围绕用户界面组件的行为以及它们如何相互连接而构建,并且它为可视画布提供了自己的坐标系和渲染引擎。动画和过渡效果是Qt Quick中
的一流概念,并且可以通过用于粒子和着色器效果的专用组件来补充视觉效果。
注意: 使用QtQuick模块时,您将需要知道如何使用QML语言编写QML应用程序。特别是“ QML应用程序”页面中的QML基础知识和QML基本知识。
概念
Qt Quick 直观的来看就是使用Qt框架进行快速开发,貌似没有问题,emm,确实没问题。它一般处理界面及界面跳转逻辑,因为这部分不需要太多的逻辑及性能处理,这样看来Qt Quick还是值得我们去分析、评估它的使用场景。
在我的理解来看,Qt Quick 是一种高级用户界面技术,它可以很轻松的创建供移动和嵌入式设备使用到的动态触摸式界面和轻量级应用程序,至于PC版的应用程序Qt Quick也可以勉强的胜任,但仅仅是轻量级的桌面应用程序,性能方面
我们会在后面的文章做分析。
Qt Quick 优点
- GPU一般都处于性能过剩的情况,而 QML 能使用 OpenGL 加速来进行渲染操作,能让GPU工作起来,避免GPU在我们的电脑上开心的划水
- 在移动端平台,没有GPU加速可能就会“不丝滑”,手感不好。所以用 QML 会有更好的体验
- QML 能直接使用GPU进行渲染优化,而 Widgets 就不行
- 语法类似JSON,属于解释性语言,学习成本低
- QML有特有的绑定机制,属性之间的绑定,一个属性变化会同时让所有的属性也变化
- QML 的信号和槽更加简单, QML 自带槽函数可以直接调用,而C++需要connect
- QML 中自定义控件更加简便,更方便复用
- 更好的UI与逻辑解耦
- 在布局方面较C++的布局更加灵活
- 易于定制个性化界面风格
- 语言简洁,层级分明
- 动画部分较C++的扩展性更良好
- Qt Quick 在低端设备上适配性较C++方式更优
Qt Quick 缺点
- 内存空间占用较C++的方式高
- 较C++而言,Model/View类控件较少
- 无本地化风格
适用场景(参考自Qt官方文档)
Qt Quick
快速的实现优美的、现代化风格的界面
打造极致的触摸、手势体验
嵌入式设备、移动、Web应用开发
在MCU(微控单元)平台打造智能手机般用户体验
Qt Widgets
原生风格、静态页面为主的应用
经典且特性丰富的桌面软件(Qt Quick 也能做到)
为了兼容过去的代码
参考
☆☆☆☆☆ [foruok的Quick 系列](https://blog.csdn.net/foruok/article/details/42637483)
☆☆☆ [Qt Quick 与 C++详细分析资料](https://www.cnblogs.com/lvdongjie/p/13519055.html)
作者:
怪小子
Github:
https://github.com/MrSunHua
邮箱:sh4a01@163.com
本文版权归作者和博客园共有,欢迎转载,如文章有版权冲突或者有更好的见解及建议,还望联系博主讨论并修改。