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

news2024/11/23 13:21:10

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”的文本。鼠标区域覆盖了整个矩形,当用户点击它时,程序就会退出。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言、C++和C#:区别与特点的比较

C语言、C和C#是三种不同的编程语言,它们在以下几个方面存在区别: 设计宗旨:C语言是一种过程式编程语言,旨在提供高效的系统级编程。C是在C语言基础上发展而来的,既支持过程式编程,也支持面向对象编程。C#是…

C++图形开发(14):游戏完善——无限空中起跳解决

文章目录 1.问题描述2.如何解决?3.整段代码 1.问题描述 在游玩过程中,我们肯定发现了之前所给出的游戏源码中的一个小bug: 小球可以空中无限起跳!!!!!!!&…

Mysql进阶-

1、存储引擎 1.1 MySQL体系结构 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存…

安装VMtools

VM17上安装VMtools 遇到的问题: 安装VMware tools是灰色的 解决办法 关闭虚拟机,编辑虚拟机设置 最后点击确定,开启虚拟机 虚拟机->重新安装VMtools,点击即可,若没有点击,那就需要关机,再开机了 正常情况下&am…

【005】基于深度学习的图像语 通信系统

摘要 语义通信是一种新颖的通信方式,可通过传输数据的语义信息提高带宽效率。提出一种用于无线图像传输的系统。该系统基于深度学习技术开发并以端到端(E2E)的方式进行训练。利用深度学习实现语义特征的提取和重建,在发送端提取信…

【thinkpad电脑重装系统后双指滑动失效】

我的电脑在前段时间重装系统了,然后触控板一直用不了,但是平时用键盘比较多,没太在意,最近在宿舍,敲击键盘会影响室友睡觉,然后决心要弄好电脑触控板。 网上提及的方法很多,比如通过设备管理器…

利用MMSegmentation微调Mask2Former模型

前言 本文介绍了专用于语义分隔模型的python库mmsegmentation,github项目地址,运行环境为Kaggle notebook,GPU为P100针对环境配置、预训练模型推理、在西瓜数据集上微调新sota模型mask2former模型,数据说明由于西瓜数据集较小&am…

【从零开始学习JAVA | 第二十八篇】不可变集合

目录 目录 前言: 不可变集合: 常见的不可变集合: 1.创建list的不可变集合: 2.创建map的不可变集合: 应用场景: 总结: 前言: 本文我们将为大家介绍JAVA中的不可变集合&#x…

第四十七章Java枚举(enum)详解:Java声明枚举类型、枚举(enum)类、EnumMap 与 EnumSet

枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为…

今天实习第二天 ,vue

由于这是一次新的项目,有几个技术,docker,vue 老板要我学习vue。 这里我安装的是node.js,但是操作的时候用的是idea,因为vue插件集成在idea中。 01.vue的技术 vue是MVVM的履行者。 02.第一个vue程序 第一步&#xff1…

C基础day9(2023.7.11)

一、Xmind整理&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;实现字符串逆置 #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) {char str[]"hello";char *pstr;char *qstrstrlen…

UE编辑器灯光颜色,能量传入Shader流程

编辑器界面&#xff1a; 代码流程&#xff1a; FLinearColor ULightComponent::GetColoredLightBrightness() const {// Brightness in Lumensfloat LightBrightness ComputeLightBrightness();FLinearColor Energy FLinearColor(LightColor) * LightBrightness;if (bUseTem…

数学建模-拟合算法

这里的线性函数指的是参数为线性&#xff0c;而不是变量为线性。 yabx^2是线性的 用的比较多的是多项式拟合和自己定义的 拓展资料&#xff1a;工具箱曲线拟合类型评价解释 文件-导出代码 自动生成的代码修改图名和标签 如果不收敛&#xff0c;自己要修改初始值&#xf…

ES 跨集群搜索 Cross-cluster search (CCS)

跨集群查询 跨集群搜索(cross-cluster search)使你可以针对一个或多个远程集群运行单个搜索请求。 例如&#xff0c;你可以使用跨集群搜索来筛选和分析存储在不同数据中心的集群中的日志数据。 环境准备 角色IP系统dev172.16.122.244CentOS 7.9prod172.16.122.245CentOS 7.9 ES…

记忆——记忆宫殿——地点桩

地点桩图片 室内物品放置方法——时钟放置法 https://www.zhihu.com/question/34549534 地点桩的扩展和记忆 我告诉你一个让记忆宫殿数量翻125倍的方法&#xff0c;以后用一个地点桩就扔一个。 这方法是我在背了几本书后才在偶然中发现的&#xff0c;我叫他“五行推演法”&a…

ES(1)简介和安装

文章目录 简介倒排索引 安装 简介 ES是面向文档型数据库&#xff0c;一条数据在这里就是一个文档。 和关系型数据库大致关系如下: ES7.x中废除掉Type&#xff08;表&#xff09;的概念 倒排索引 要知道什么是倒排索引&#xff0c;就要先知道什么是正排索引 idcontent100…

判断数组中所有元素是否均为True numpy.alltrue()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 判断数组中所有元素是否均为True numpy.alltrue() [太阳]选择题 请问关于以下代码的说法错误的是&#xff1f; import numpy as np print(【执行】np.alltrue([True, True, True])) print(n…

C/C++图形库EasyX保姆级使用教程(四) 图片的展示与缩放

C/C图形库EasyX保姆级使用教程 第一章 Microsoft Visual Studio 2022和EasyX的下载及安装使用 第二章 图形化窗口设置以及简单图形的绘制 第三章 图形颜色的填充及相关应用 第四章 图片的展示与缩放 文章目录 C/C图形库EasyX保姆级使用教程前言一、图片的展示1.变量存储图片2.…

安全测试方法介绍(下)渗透测试

安全主要测试方法主要有&#xff1a;静态源代码审查&#xff0c;这个在编码阶段就可以进行&#xff0c;这个阶段如果出现问题&#xff0c;修复起来成本也比较低。程序发布之后可以进行渗透测试。前面的文章中我们为大家介绍了静态源代码审查的方法和策略&#xff0c;接下来本文…

【milvus】向量数据库,用来做以图搜图+人脸识别的特征向量

1. 安装milvus ref:https://milvus.io/docs 第一次装东西&#xff0c;要把遇到的问题和成功经验都记录下来。 1.Download the YAML file wget https://github.com/milvus-io/milvus/releases/download/v2.2.11/milvus-standalone-docker-compose.yml -O docker-compose.yml看…