zoukankan      html  css  js  c++  java
  • 漫谈QML

                                 漫谈 QML/Qt Quick

           QML是从Qt 4.7开始引入的,QML是一种声明语言,使得可以像设计师思考的一样编码,并且Qt Quick元素就是应用程序的编译单元,每一帧的故事板被声明为元素树中的一个分支,每一个视觉方面的分支元素的属性被声明为一帧,每帧之间的过渡可装饰 各种动画和特效。

           Qt Quick运行时实现了UI并且提供直接访问本地API的功能,并且在适当的时候可以使用C++扩展获取更好的性能。由于Qt Quick的运行时也是在Qt内部实现的,所以可以十分简单的做到跨平台。

           Qt是为现代产品开发方式所构建的。核心的逻辑部分由开发者编码并优化,用户界面由设计师通过可视化工具完成。Qt也集成了工具,支持这种方式的迭代开发。

           Qt Quick是构建在强大的Qt之上。QML可以用来扩展已经存在的应用或者是构建全新的应用。QML是完全从C++扩展而来的。

          QML文档在硬盘或者是网络资源上生成纯文本文件,但是也可以通过文本数据构造。

          我们来看看一个简单的QML文件的格式:


            再来看看效果:


              其实QML只是一种语言,它主要是定义了QML文件的语法,以及QML语言的基本实现。而Qt Quick内置很多常用的元素,使得我们可以很方便的使用。我个人将QML和Qt Quick的关系类比编程语言和编程框架(或者函数库)。

            Qt Quick内置了很多常用的可视化元素,主要如下图:


             Qt Quick也提供了对动画,以及模型/视图编程,以及数据存储等方面的支持。

             下面我们来看看Qt 提供的文档对QML和Qt Quick的介绍。

    首先是QML:

            Qt QML模块为使用QML语言开发应用程序提供了框架和库。它定义并实现了语言以及引擎,并且提供了API使得应用程序开发者可以使用自定义类型扩展QML语言,并且将QML代码和JavaScript,C++集成。

            Qt QML模块提供了QtQml QML模块,该模块提供了一系列核心的QML类型,用于创建QML应用;也提供了QtQml C++模块,该模块提供了一系列的C++ API用于使用自定义类型扩展QML应用,并且将C++实现集成到QML应用程序中。

             QML模块提供的QML类型:


             QML模块提供的C++ API:


            注意:Qt QML模块只提供语言以及QML的基本实现,并不提供一个可视化的画布或者渲染引擎用于创建用户界面。这两个部分都是由Qt Quick提供的Qt Quick提供了许多组件,模型/视图支持,动画框架并且许多用于创建用户界面的QML细节。

    再来看看Qt Quick:

            Qt Quick是用于创建QML应用程序的标准库。Qt QML模块提供QML的引擎以及语言基础,Qt Quick模块提供QML创建基本用户界面的常用元素。它提供了可视化的画布用于创建和绘制可视化组件,接受用户输入,创建数据模型,视图以及代理。

            Qt Quick模块提供了QtQuick QML模块,该模块提供了一系列用于创建用户界面的QML类型;也提供QtQuick C++模块,该模块提供一系列C++ API用于集成用户界面和QtQuick QML模块

            Qt Quick提供的基本QML类型:


              Qt Quick提供的C++ API:



  • 相关阅读:
    树莓派4B(4G版本)安装Ubuntu 19.10
    PyQt5通过使用QSS语法制作精美界面
    PyQt5 界面设计和业务处理分离
    Python多线程同步
    PyQt界面
    pip设置
    Vim 常用配置
    python日期处理
    vue项目创建与使用
    vue 指令,成员,组件
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/5576680.html
Copyright © 2011-2022 走看看