QT Quick初学笔记---第一篇

链接: QML Book中文版(QML Book In Chinese)

1、对Qt Quick的初步认识

Qt Quick是Qt5界面开发技术的统称,是以下几种技术的集合:

  1. QML:界面标记语言
  2. JavaScript:动态脚本语言
  3. QT C++:跨平台C++封装库

QML是与HTML类似的一种标记语言。

QML文件采用.qml作为文件格式后缀。作为一种标记语言(类似HTML)一个QML文档有且只有一个根元素

示例:

在这个例子中使用Image元素作为根元素,这个元素的宽度、高度与"images/background.png"图像相同。

import QtQuick 2.5

Image{
    id:root
    source: "1.png"
}

QML中不限制根元素类型,在上面这段代码中我们设置了Image元素的source属性作为我们的背景图像,它也是我们的根元素。
在这里插入图片描述
注意:

  1. 每个元素都有属性。比如Image有width和height,也会有其他的属性如srouce。Image元素的尺寸会自动与source设置的图像匹配。想要自定义Image元素的尺寸必须显式的定义width和height的值。
  2. 大多数标准元素都在QtQuick模块中,通常我们在导入声明中首先包含这个模块。
  3. id是个特殊的属性,它可以作为一个标识符在当前文档内引用对应的元素。注意:id被定义后无法再改变,在程序执行期间也无法被赋值。

2、QT构建模块

QT5是由大量模块组成的。
Qt基础模块:强制性用来支持Qt平台的;
Qt附加模块:是可选的。

2.1、核心基础模块

  1. Qt Core:核心的非图形类,供其它模块使用。
  2. Qt GUI:图形用户界面(GUI)组件的基类,包括OpenGL。
  3. Qt Multimedia:音频,视频,电台,摄像头的功能类。
  4. Qt Network:简化方便的网络编程的类。
  5. Qt QML:QML类与JavaScript语言的支持。
  6. Qt Quick:可高度动态构建的自定义应用程序用户界面框架。
  7. Qt SQL:集成SQL数据库类。
  8. Qt Test:Qt应用程序与库的单元测试类。
  9. Qt WebKit:集成WebKit2的基础实现并且提供了新的QML应用程序接口。在附件模块中查看Qt WebKit Widgets可以获取更多的信息。
  10. Qt WebKit Widgets :Widgets 来自Qt4中集成WebKit1的窗口基础类。
  11. Qt Widgets:扩展Qt GUI模块的C++窗口类。

2.2、附加模块

  • Qt 3D :一组使3D编程更加方便的应用程序接口和声明。
  • Qt Bluetooth:在多平台上使用无线蓝牙技术的C++和QML应用程序接口。
  • Qt Contacts:提供访问联系人与联系人数据库的C++和QML应用程序接口。
  • Qt Location:提供了定位,地图,导航和位置搜索的C++与QML接口。使用NMEA在后端进行定位。(NMEA缩写,同时也是数据传输标准工业协会,在这里,实际上应为NMEA 0183。它是一套定义接收机输出的标准信息,有几种不同的格式,每种都是独立相关的ASCII格式,逗点隔开数据流,数据流长度从30-100字符不等,通常以每秒间隔选择输出,最常用的格式为”GGA”,它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP值,差分状态和校正时段等,其他的有速度,跟踪,日期等。NMEA实际上已成为所有的GPS接收机和最通用的数据输出格式,同时它也被用于与GPS接收机接口的大多数的软件包里。)
  • Qt Publish and SubScribe:Qt发布与订阅
  • Qt Sensors:访问传感器的QML与C++接口。
  • Qt Service Framework:允许应用程序读取,操纵和订阅来改变通知信息。
  • Qt System Info :发布系统相关的信息和功能。
  • Qt Versit :支持电子名片与日历数据格式(iCalendar)。(iCalendar是“日历数据交换”的标准(RFC 2445)。 此标准有时指的是“iCal”,即苹果公司的出品的一款同名日历软件,这个软件也是此标准的一种实现方式。)
  • Qt Wayland:只用于Linux系统。包含了Qt合成器应用程序接口(server),和Wayland平台插件(clients)。
  • Qt Feedback :反馈用户的触摸和声音操作。
  • Qt JSON DB:对于Qt的一个不使用SQL对象存储。

3、HelloWprld

import QtQuick 2.5

Rectangle{
    width: 360
    height: 360
    Text {
        anchors.centerIn: parent
        text: "Hello world"
    }
    MouseArea {
           anchors.fill: parent
           onClicked: {
               Qt.quit();
           }
    }
}

这个代码指定了显示一个360乘以360像素的一个矩形,矩形中间有一个“Hello World”的文本。鼠标区域覆盖了整个矩形,当用户点击它时,程序就会退出。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/38932.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

守护数智未来,开源网安受邀参加2023OWASP北京论坛

2023年7月14日,OWASP中国与网安加社区联合举办的“2023OWASP中国北京安全技术论坛”在北京圆满召开,开源网安受邀参加本次论坛并分享“软件供应链安全治理实践”。 本次“2023OWASP中国北京安全技术论坛”是OWASP中国北京地区年度重要活动之一&#xff…

数据库信息速递 MONGODB 6.0 的新特性,更多的查询函数,加密查询,与时序数据集合 (译)...

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共…

ffmpeg学习之音频解码数据

音频数据经过解码后会被保存为,pcm数据格式。而对应的处理流程如下所示。 avcodec_find_encoder() /*** 查找具有匹配编解码器ID的已注册编码器.** param id AVCodecID of the requested encoder* return An encoder if one was found, NULL otherwise.*/ const A…

docker k8s

Docker docker到底与一般的虚拟机有什么不同呢? 我们知道一般的linux系统即GNU/Linux系统包括两个部分,linux系统内核GNU提供的大量自由软件,而centos就是众多GNU/Linux系统中的一个。 虚拟机会在宿主机上虚拟出一个完整的操作系统与宿主机完…

数智领航 信创强基 | GBASE南大通用携手金仕达共助金融用户合规风控

GBASE南大通用董事长丁明峰先生应邀出席大会并在主论坛发表题为《去全球化背景下的中国数据库发展策略》的主题分享。 技术的迭代发展是经济增长、产业升级的核心动力。纵观近现代社会史,信息技术和通信技术的迅猛发展,帮助人类实现了PC互联网到移动互联…

MyBatis全篇

文章目录 MyBatis特性下载持久化层技术对比 搭建MyBatis创建maven工程创建MyBatis的核心配置文件创建mapper接口创建MyBatis的映射文件测试功能加入log4j日志功能加入log4j的配置文件 核心配置文件的完善与详解MyBatis的增删改查测试功能 MyBatis获取参数值在IDEA中设置中配置文…

Java遍历集合方法分析(实现原理、算法性能、适用场合)

Java遍历集合方法分析(实现原理、算法性能、适用场合) 概述 java语言中,提供了一套数据集合框架,其中定义了一些诸如List、Set等抽象数据类型,每个抽象数据类型的各个具体实现,底层又采用了不同的实现方式…

Web3时代来临:你准备好了吗?

如果你正在浏览本文,那么很可能你已经是Web3时代的一部分了,或者至少是将要成为其中的一员。因为Web3时代即将来临,它将彻底改变我们对互联网的认识和使用方式。 那么,什么是Web3时代呢?简单来说,它是指基于…

Kubernetes集群故障排查—审计

Kubernetes 审计(Auditing) 功能提供了与安全相关的、按时间顺序排列的记录集, 记录每个用户、使用 Kubernetes API 的应用以及控制面自身引发的活动。 审计功能使得集群管理员能够回答以下问题: 发生了什么?什么时候…

【微信小程序-uniapp】CustomPickerMul 自定义多选选择器组件

1. 效果图 2. 组件完整代码 <template><view class="custom-picker-mul"><view :class&#

MySQL(十):MySQL语法-进阶

MySQL语法-进阶 数据类型Text 类型Number 类型Date 类型 ASALTER TABLEconcat、group_concatSQL注入阻止SQL注入方案一方案二方案三 HAVING 子句临时表正则表达式获取服务器元数据事务导出数据导出数据导出表作为原始数导出SQL格式的数据 导入数据解决无法导入问题使用 LOAD DA…

西安---高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测技术应用

能源是国民经济发展和人民生活必须的重要物质基础。在过去的200多年里&#xff0c;建立在煤炭、石油、天然气等化石燃料基础上的能源体系极大的推动了人类社会的发展。但是人类在使用化石燃料的同时&#xff0c;也带来了严重的环境污染和生态系统破坏。近年来&#xff0c;世界各…

C语言 —— 浮点类型详解及 IEEE754 规定

【C语言趣味教程】(3) 浮点类型&#xff1a;单精度浮点数 | 双精度浮点型 | IEEE754 标准 &#x1f517; 《C语言趣味教程》&#x1f448; 猛戳订阅&#xff01;&#xff01;&#xff01; ​—— 热门专栏《维生素C语言》的重制版 —— &#x1f4ad; 写在前面&#xff1a;这是…

后端Long类型传到前端精度丢失的问题

问题出现&#xff1a;后端的Java Bean的id属性是用的Long类型对应数据库主键使用bigint类型&#xff0c;当使用JSON方式传递该数据给前端时&#xff0c;前端接收到的数据末尾会变成0。&#xff08;发生的精度丢失问题&#xff09; 问题原因&#xff1a;Java中的long能表示的范围…

谷歌黑客语法与漏洞寻找

谷歌黑客语法与漏洞寻找 一、常见的搜索引擎二、Google部分语法三、通配符四、FOFA五、Shodan六、例子&#xff1a;常见的后台地址 一、常见的搜索引擎 浏览器 浏览器是用来检索、展示以及传递Web信息资源的应用程序。 搜索引擎 所谓搜索引擎&#xff0c;就是根据用户需求与一…

SQL28 计算用户8月每天的练题数量

select day(date) as day,count(question_id) from question_practice_detail where month(date)8 and year(date)2021 group by date

谈一谈,Spring Boot 中的 starter 到底是什么 ?

1. 为什么要用Starter? 现在我们就来回忆一下&#xff0c;在还没有Spring-boot框架的时候&#xff0c;我们使用Spring 开发项目&#xff0c;如果需要某一个框架&#xff0c;例如mybatis&#xff0c;我们的步骤一般都是&#xff1a;到maven仓库去找需要引入的mybatis jar包&am…

【C++】-stack和queue的具体使用以及模拟实现(dqeue的介绍+容器适配器的介绍)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

TCP四次挥手过程

TCP 断开连接是通过四次挥手方式。 双方都可以主动断开连接&#xff0c;断开连接后主机中的「资源」将被释放&#xff0c; 刚开始双方都处于 establised 状态&#xff0c;假如是客户端先发起关闭请求&#xff0c;过程如下图&#xff1a; 第一次挥手&#xff1a;客户端打算关闭…

【机器学习】基于卷积神经网络 CNN 的猫狗分类问题

文章目录 一、卷积神经网络的介绍1.1 什么是卷积神经网络1.2 重要层的说明1.3 应用领域二、 软件、环境配置2.1 安装Anaconda2.2 环境准备 三、猫狗分类示例3.1 图像数据预处理3.2 基准模型3.3 数据增强3.4 dropout层四、总结 一、卷积神经网络的介绍 1.1 什么是卷积神经网络 …