Qt Widgets、QML、Qt Quick的区别

序言

最近一段时间接触了QML,并了解了C++如何与QML实现数据交互后,我在用QWidget中如何去加载QML时看到了QQuickView,QQuickWIdget,把Qt Quick 与 QML一时之间没怎么弄明白。

区别

参考这位大神博客:
https://www.cnblogs.com/lsgxeva/p/7826761.html
这位大神 还详细地讲解了QWidget、 QML 、Qt Quick区别。
这里我把我的理解说下。如有误导请纠正我,我也是在学习途中的一员小白。

QML:
QML is a user interface specification and programming language. It allows developers and designers alike to create highly performant, fluidly animated and visually appealing applications. QML offers a highly readable, declarative, JSON-like syntax with support for imperative JavaScript expressions combined with dynamic property bindings

QML是一种用户界面规范和编程语言。它允许开发人员和设计人员创建高性能、流畅的动画和具有视觉吸引力的应用程序。QML提供了高度可读的、声明式的、类似json的语法,支持命令式JavaScript表达式和动态属性绑定。它是一种声明式语言。

Qt Quick

Qt Quick is the standard library of types and functionality for QML. It includes visual types, interactive types, animations, models and views, particle effects and shader effects. A QML application developer can get access to all of that functionality with a single import statement.
The QtQuick QML library is provided by the Qt Quick module. For in-depth information about the various QML types and other functionality provided by Qt Quick, please see the Qt Quick module documentation.

Qt Quick是QML类型和功能的标准库。它包括视觉类型,交互类型,动画,模型和视图,粒子效果和着色效果。QML应用程序开发人员可以通过一条import语句访问所有这些功能。
QtQuick QML库由QtQuick模块提供。有关Qt Quick提供的各种QML类型和其他功能的详细信息,请参阅Qt Quick模块文档。

它就是QML类型的功能标准库,工具集。

Qt Quick 使用 QML 作为声明语言,来设计以用户界面为中心的应用程序。严格来讲,Qt Quick 是一个用于 QML 的工具包,允许以 QML 语言来开发图形界面。当然,还有其他的工具包用于 QML:

图形化的(例如:Sailfish Silica 或 BlackBerry Cascades)
非图形的(例如:QBS - QMake/CMake/make…的一个替代品)

Qt Widget
我们常用的QLabel、 QPushButton、QWidget等等常见的桌面应用程序设计窗口类。

Qt QML

The Qt QML module provides a framework for developing applications and libraries with the QML language. It defines and implements the language and engine infrastructure, and provides an API to enable application developers to extend the QML language with custom types and integrate QML code with JavaScript and C++. The Qt QML module provides both a QML API and a C++ API.
Note that while the Qt QML module provides the language and infrastructure for QML applications, the Qt Quick module provides many visual components, model-view support, an animation framework, and much more for building user interfaces.

Qt QML模块为使用QML语言开发应用程序和库提供了一个框架。它定义并实现了语言和引擎基础结构,并提供了一个API,使应用程序开发人员能够使用自定义类型扩展QML语言,并将QML代码与JavaScript和c++集成在一起。Qt QML模块同时提供QML API和c++ API。
请注意,Qt QML模块为QML应用程序提供了语言和基础设施,而Qt Quick模块为构建用户界面提供了许多可视化组件、模型-视图支持、动画框架等。

你可能感兴趣的:(qtquick,QML与QtQuick区别)