Qt5之QML语言与Qt Quick

Posted on 2022-07-13 10:01  金色的省略号  阅读(647)  评论(0编辑  收藏  举报

  Qt5,图形引擎基于GPU,包括应用开发套件Qt Quick2(适用于触摸屏的UI开发),增强了对C++11的支持,加强了对JavaScript语言和QML语言的支持,QML可以与基于C++的经典的Qt Widgets进行混合编程,与Qt4高度兼容

  QML常用术语:QML(元对象语言)、Qt Quick(QML的标准库)、Type(类型)、Basic Type(基本类型)、Object Type(对象类型)、Object(对象)、Component(组件)、Document(文档)、Property(属性)、Binding(绑定)、Signal(信号)、Signal Handler(信号处理器)、Lazy Instantiation(延迟实例化)

  第一章 Qt5模块架构

  Qt5将所有功能模块分为3部分:Qt基本模块(Qt Essentials)、Qt扩展模块(Qt Add-Ones)和开发工具(Qt Tools)

  一、Qt基本模块

  
  Qt QML模块提供对QML语言和JavaScript语言的支持

  Qt Quick模块提供了一个用于创建高度动画效果的应用程序的声明式框架,该框架建立在QML语言和JavaScript的基础之上(Qt5.9帮助文档:Qt Quick模块提供了在Qt/ c++应用程序中嵌入Qt Quick的类,要包含模块类的定义,使用下面的指令:#include <QtQuick>,要链接到该模块,请将这一行添加到qmake .pro文件中,QT += quick)

  QtQuick 2的大部分源代码与QtQuick 1兼容,从一个移植到另一个非常容易,在内部,它们几乎完全不同:QtQuick1使用栅格引擎(软件渲染),并且基于QGraphicsView,依次基于QWidget; 在QtQuick2中,整个堆栈独立于Widgets,基于Gunnar的Scenegraph实现,使用OpenGL完成绘制

  Qt Gui模块图形用户界面(GUI)开发的最基础的类库,包括各种交换事件等,同时这个模块还包括了有关OpenGL的内容

  在Qt5支持的平台之上是平台抽象层QPA

  在QPA层之上的所有深色背景组块都是Qt Gui模块的内容:一类以OpenGL为核心,Quick2和Qt Webkit的基础,一类是以辅助访问和输入方式为基础的一般图形显示类,经典的QWidget部件类和Qt Quick1的基础

  Qt Core模块,是Qt5的核心库,其他各个模块都建立在Core模块之上,支持JSON,支持XML