赞
踩
接触Qt开发框架也有一段时间了,一直没有用QML进行过任何开发,打算开始深入学习一波这方面的东西,记录我在学习中的一些笔记,最后逐渐将自己以前做过的一些项目用QML重写实现一遍,毕竟QML是Qt现在力推的编程语言和用户界面规范。
QML是一种用户界面规范和编程语言。它允许开发人员和设计人员创建高性能、流畅的动画和具有视觉吸引力的应用程序。QML提供了高度可读的、声明式的、类似json的语法,支持命令式JavaScript表达式和动态属性绑定。QML语言和引擎基础结构是由Qt QML模块提供。QML是一种声明性语言,它允许根据用户界面的可视组件以及它们之间的交互和关系来描述用户界面。它是一种高度可读的语言,其设计目的是使组件能够以动态方式互连,并且允许在用户界面中轻松地重用和定制组件。使用QtQuick模块,设计人员和开发人员可以轻松地在QML中构建流畅的动画用户界面,并可以将这些用户界面连接到任何后端c++库。
Qt Quick是QML类型和功能的标准库。它包括视觉类型,交互类型,动画,模型和视图,粒子效果和着色效果。QML应用程序开发人员可以通过一条import语句访问所有这些功能。QtQuick QML库由QtQuick模块提供。为了创建或定制图形用户界面,Qt Quick除了Qt QML中的标准QML类型外,还添加了可视类型、动画类型和其他QML类型。QtQuick Designer是集成在Qt Creator中的,并且在Qt Creator 2.7版本以后就支持QtQuick 2了。
QML文档使用高度可读的结构化布局定义对象的层次结构。每个QML文档由两部分组成:导入部分和对象声明部分。用户界 面最常见的类型和功能在QtQuick import中提供。
要使用Qt Quick模块,需要导入QML文档。导入语法是这样的:
import QtQuick 2.3
这样,Qt Quick提供的类型和功能就可以在QML文档中使用了。
QML文档中的对象声明定义了可视场景中显示的内容。Qt Quick提供了所有用户界面的基本构建块,例如用于显示图像和文本以及处理用户输入的对象。一个简单的对象声明可以是一个有颜色的矩形,中间有一些文本:
- Rectangle {
- width: 200
- height: 100
- color: "red"
-
- Text {
- anchors.centerIn: parent
- text: "Hello, World!"
- }
- }
上面定义了一个带有根矩形对象的对象层次结构,根矩形对象有一个子文本对象。文本对象的父对象被自动设置为矩形,类似地,文本对象被QML添加到矩形对象的子属性中。上面示例中使用的矩形和文本类型都是由QtQuick导入提供的。把导入和对象声明放在一起,我们得到了一个完整的QML文档:
- import QtQuick 2.3
-
- Rectangle {
- width: 200
- height: 100
- color: "red"
-
- Text {
- anchors.centerIn: parent
- text: "Hello, World!"
- }
- }
如果我们把这个文档保存为“HelloWorld.qml”,我们就可以加载和显示它了。
打开Qt5.13.2的Qt Creator,创建一个Qt Quick 应用程序的空项目:
在main.qml文件中的内容,将之前创建的代码复制到文件中,按绿色运行按钮运行应用程序。可以看到文字“你好,世界!”在一个红色矩形的中心:
第一个QML应用程序创建并运行成功。
当我们从头创建一个新的Qt Quick项目时,我们有以下选项:
Qt Creator生成的一个QML文件“main.qml” ,是可以在设计模式中修改的。
使用QML编写应用程序还是很快的。高度可读的结构化布局定义对象的层次结构有点类似python的缩进规范,代码简洁分明,清晰。后续开始学习使用QML控件创建应用程序。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。