qt-QtQuick笔记之常见项目类简要介绍

qt-QtQuick笔记之常见项目类简要介绍

code review!

文章目录

  • qt-QtQuick笔记之常见项目类简要介绍
    • 1.QQuickItem
    • 2.QQuickRectangle
    • 3.QQuickImage
    • 4.QQuickText
    • 5.QQuickBorderImage
    • 6.QQuickTextInput
    • 7.QQuickButton
    • 8.QQuickSwitch
    • 9.QQuickListView
    • 10.QQuickGridView
    • 11.QQuickPopup
    • 12.QQuickFlickable
    • 13.QQuickSlider
    • 14.QQuickProgressBar
    • 15.QQuickComboBox
    • 16.QQuickToolBar
    • 17.QQuickItemView
    • 18.特殊自定义绘制控件: QQuickPaintedItem
    • 19.汇总表格

Qt Quick 提供了多种 UI 项目类( Item 类)来帮助开发者构建不同类型的用户界面元素。每个类都有独特的功能,能够灵活地定制应用的外观和行为。以下是一些常见的 Qt Quick 项目类的介绍,帮助你了解它们的用途和功能。

1.QQuickItem

  • 简介QQuickItem 是所有 Qt Quick 项目的基础类,提供了位置、大小、透明度等基础功能,但无法直接绘制内容。可以作为容器或自定义类的基类。
  • 用途:作为基类或容器元素,用于自定义行为和属性。

2.QQuickRectangle

  • 简介:表示一个矩形区域,常用来作为容器或视觉元素,支持背景颜色、边框、圆角等属性。
  • 用途:用作基础矩形组件或自定义控件的基础。
Rectangle {width: 100height: 100color: "blue"
}

3.QQuickImage

  • 简介:用于显示图像,支持加载本地文件、URL 或动态图像,可以控制缩放和平铺等属性。
  • 用途:显示图标、背景图、照片等静态图像。
Image {source: "image.png"width: 100height: 100
}

4.QQuickText

  • 简介:用于显示文本,支持字体、颜色、大小、对齐等样式设置。
  • 用途:显示标签、按钮文本或任何文本内容。
Text {text: "Hello, World!"color: "black"font.pointSize: 24
}

5.QQuickBorderImage

  • 简介:可以从图像中提取可伸缩的边框部分,适合用作容器或控件背景。
  • 用途:用于背景或按钮等控件,支持可伸缩的边框和中心区域。

6.QQuickTextInput

  • 简介:用于接收文本输入,支持键盘输入、文本编辑和光标控制。
  • 用途:常用于文本框、搜索框等。
TextInput {width: 200placeholderText: "Enter your name"
}

7.QQuickButton

  • 简介:标准按钮控件,支持点击、长按、启用/禁用等状态。
  • 用途:创建按钮,常与文本或图标结合使用。
Button {text: "Click Me"onClicked: {console.log("Button clicked!")}
}

8.QQuickSwitch

  • 简介:开关控件,用于切换布尔状态。
  • 用途:用于二值选择,如“开启/关闭”功能。
Switch {onCheckedChanged: {console.log("Switch state: " + checked)}
}

9.QQuickListView

  • 简介:支持滚动的列表视图,适用于动态数据展示,支持高效的项目显示和滚动。
  • 用途:用于展示列表项,如联系人列表、新闻列表等。
ListView {width: 200height: 400model: ListModel {ListElement { name: "Item 1" }ListElement { name: "Item 2" }}delegate: Text {text: model.name}
}

10.QQuickGridView

  • 简介:网格布局视图,用于按网格展示项目。
  • 用途:常用于图标、照片库、文件管理器等展示。

11.QQuickPopup

  • 简介:弹出控件,通常用于显示模态对话框或通知。
  • 用途:弹出信息窗口或选择框。

12.QQuickFlickable

  • 简介:支持滑动和滚动内容的控件,常作为列表、视图的基础。
  • 用途:用于实现可以通过手势滚动的容器。

13.QQuickSlider

  • 简介:滑动条控件,允许用户选择范围内的数值。
  • 用途:用于控制音量、亮度等。
Slider {from: 0to: 100value: 50
}

14.QQuickProgressBar

  • 简介:进度条控件,显示任务或进度的百分比。
  • 用途:显示操作进度,如文件上传、下载等。

15.QQuickComboBox

  • 简介:下拉列表控件,允许用户从选项中选择一个。
  • 用途:用于选择框、菜单等。
ComboBox {model: ["Option 1", "Option 2", "Option 3"]
}

16.QQuickToolBar

  • 简介:工具栏控件,通常用于显示操作按钮或菜单项。
  • 用途:实现应用中的顶部或底部工具栏。

17.QQuickItemView

  • 简介:基类,支持动态数据的可视化显示,作为 QQuickListViewQQuickGridView 的基础类。
  • 用途:数据驱动视图,显示数据集合。

18.特殊自定义绘制控件: QQuickPaintedItem

  • 简介:继承自 QQuickItem,提供了自定义绘制的功能,可以通过重写 paint() 方法来绘制任意内容。
  • 用途:用于自定义控件绘制,适用于图表、绘图应用等需要动态更新绘制的场景。

示例代码:

#include <QQuickPaintedItem>
#include <QPainter>class MyPaintedItem : public QQuickPaintedItem
{Q_OBJECTpublic:MyPaintedItem(QQuickItem *parent = nullptr) : QQuickPaintedItem(parent) {}void paint(QPainter *painter) override {painter->setBrush(Qt::red);painter->drawRect(0, 0, width(), height());}
};

在 QML 中使用:

import QtQuick 2.15
import QtQuick.Controls 2.15ApplicationWindow {visible: truewidth: 200height: 200MyPaintedItem {width: 100height: 100}
}

运行
在这里插入图片描述

19.汇总表格

类名简介用途
QQuickItem基础项目类,提供基本位置、大小、透明度等功能用于自定义行为和属性的基类
QQuickRectangle矩形区域控件,支持背景颜色、边框、圆角等属性用作矩形组件或自定义控件的基础
QQuickImage显示图像,支持图像加载、缩放等用于显示图标、背景图、照片等
QQuickText显示文本,支持字体、颜色、大小、对齐等样式设置显示文本内容,如标签、按钮文字等
QQuickBorderImage从图像提取可伸缩的边框部分用作容器或控件背景,支持可伸缩区域
QQuickTextInput文本输入控件,支持键盘输入、文本编辑、光标控制用于文本框、搜索框等
QQuickButton标准按钮控件,支持点击、长按、启用/禁用状态创建按钮控件
QQuickSwitch开关控件,用于切换布尔状态用于二值选择
QQuickListView滚动列表视图,支持动态数据展示展示联系人、新闻等列表
QQuickGridView网格布局视图,按网格展示项目图标、照片库、文件管理器等展示
QQuickPopup弹出控件,显示模态对话框或通知弹出信息窗口或选择框
QQuickFlickable支持滑动和滚动内容的控件实现滑动和滚动的容器
QQuickSlider滑动条控件,选择范围内的数值音量、亮度等控制
QQuickProgressBar进度条控件,显示任务进度显示操作进度
QQuickComboBox下拉列表控件,选择一项选择框、菜单等
QQuickToolBar工具栏控件,显示操作按钮或菜单项顶部或底部工具栏
QQuickItemView数据驱动视图,支持动态数据可视化显示数据集合
QQuickPaintedItem自定义绘制项,提供绘制功能用于自定义控件、图形或动画绘制

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

循环神经网络(RNN)+pytorch实现情感分析

目录 一、背景引入 二、网络介绍 2.1 输入层 2.2 循环层 2.3 输出层 2.4 举例 2.5 深层网络 三、网络的训练 3.1 训练过程举例 1&#xff09;输出层 2&#xff09;循环层 3.2 BPTT 算法 1&#xff09;输出层 2&#xff09;循环层 3&#xff09;算法流程 四、循…

Autosar-Os是怎么运行的?(多核系统运行)

写在前面&#xff1a; 入行一段时间了&#xff0c;基于个人理解整理一些东西&#xff0c;如有错误&#xff0c;欢迎各位大佬评论区指正&#xff01;&#xff01;&#xff01; 目录 1.Autosar多核操作系统 1.1多核启动过程 1.2多核运行过程 1.2.1核间任务同步 1.2.2Counte…

【C语言练习题】正弦函数

题目&#xff1a; 根据麦克劳林公式计算正弦值。 输入格式 x ε 注&#xff1a;x 为角(弧度)&#xff0c;ε 为计算精度。 输出格式 y 注&#xff1a;y 为 x 的正弦值&#xff0c;输出 6 位小数。 输入样例1 0.5235987755982989 0.00000001输出样例1 0.500000输入样例2 314.68…

GBase 8a 9.5.3.27 DBlink配置---源端GBase

原理图 1.目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口 2.Dblink将请求由9898端口转发至源端集群的5258端口 3.源端数据库将接收的请求生成执行计划&#xff0c;由gcluster的5258端口下发至各gnode的5050端口 4.源端的5050端口接收到执行计划进行查询&…

二次封装的方法

二次封装 我们开发中经常需要封装一些第三方组件&#xff0c;那么父组件应该怎么传值&#xff0c;怎么调用封装好的组件原有的属性、插槽、方法&#xff0c;一个个调用虽然可行&#xff0c;但十分麻烦&#xff0c;我们一起来看更简便的方法。 二次封装组件&#xff0c;属性怎…

*胡闹厨房*

前期准备 详细教程 一、创建项目 1、选择Universal 3D,创建项目 2、删除预制文件Readme:点击Remove Readme Assets,弹出框上点击Proceed 3、Edit-Project Setting-Quality,只保留High Fidelity 4、打开 Assets-Settings ,保留URP-HighFidelity-Renderer 和 URP-High…

Effective Objective-C 2.0 读书笔记—— objc_msgSend

Effective Objective-C 2.0 读书笔记—— objc_msgSend 文章目录 Effective Objective-C 2.0 读书笔记—— objc_msgSend引入——静态绑定和动态绑定OC之中动态绑定的实现方法签名方法列表 其他方法objc_msgSend_stretobjc_msgSend_fpretobjc_msgSendSuper 尾调用优化总结参考文…

Three.js实战项目02:vue3+three.js实现汽车展厅项目

文章目录 实战项目02项目预览项目创建初始化项目模型加载与展厅灯光加载汽车模型设置灯光材质设置完整项目下载实战项目02 项目预览 完整项目效果: 项目创建 创建项目: pnpm create vue安装包: pnpm add three@0.153.0 pnpm add gsap初始化项目 修改App.js代码&#x…

Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解

在现代软件开发中&#xff0c;性能测试是确保应用程序稳定性和响应速度的关键环节。 今天&#xff0c;我们就来深入了解一款国产化功能强大的 Elasticsearch 负载测试工具——INFINI Loadgen。 一、INFINI Loadgen 简介 Github地址&#xff1a;https://github.com/infinilabs/l…

Python从0到100(八十五):神经网络-使用迁移学习完成猫狗分类

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

(1)SpringBoot入门+彩蛋

SpringBoot 官网(中文)&#xff1a;Spring Boot 中文文档 Spring Boot是由Pivotal团队提供的一套开源框架&#xff0c;可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持&#xff0c;可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能…

C语言从入门到进阶

视频&#xff1a;https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from333.788.player.switch&vd_sourcec988f28ad9af37435316731758625407&p23 //枚举常量 enum Sex{MALE,FEMALE,SECRET };printf("%d\n", MALE);//0 printf("%d\n", FEMALE…

MacOS安装Docker battery-historian

文章目录 需求安装battery-historian实测配置国内源相关文章 需求 分析Android电池耗电情况、唤醒、doze状态等都要用battery-historian&#xff0c; 在 MacOS 上安装 battery-historian&#xff0c;可以使用 Docker 进行安装runcare/battery-historian:latest。装完不需要做任…

公式与函数的应用

一 相邻表格相乘 1 也可以复制 打印标题

DeepSeek学术写作测评第二弹:数据分析、图表解读,效果怎么样?

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 针对最近全球热议的DeepSeek开源大模型&#xff0c;娜姐昨天分析了关于论文润色、中译英的详细效果测评&#xff1a; DeepSeek学术写作测评第一弹&#xff1a;论文润色&#…

MongoDB平替数据库对比

背景 项目一直是与实时在线监测相关&#xff0c;特点数据量大&#xff0c;读写操作大&#xff0c;所以选用的是MongoDB。但按趋势来讲&#xff0c;需要有一款国产数据库可替代&#xff0c;实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…

动手学深度学习-卷积神经网络-3填充和步幅

目录 填充 步幅 小结 在上一节的例子&#xff08;下图&#xff09; 中&#xff0c;输入的高度和宽度都为3&#xff0c;卷积核的高度和宽度都为2&#xff0c;生成的输出表征的维数为22。 正如我们在 上一节中所概括的那样&#xff0c;假设输入形状为nhnw&#xff0c;卷积核形…

简易CPU设计入门:控制总线的剩余信号(二)

项目代码下载 请大家首先准备好本项目所用的源代码。如果已经下载了&#xff0c;那就不用重复下载了。如果还没有下载&#xff0c;那么&#xff0c;请大家点击下方链接&#xff0c;来了解下载本项目的CPU源代码的方法。 CSDN文章&#xff1a;下载本项目代码 上述链接为本项目…

【MySQL】 数据类型

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;【MySQL】 数据类型 发布时间&#xff1a;2025.1.27 隶属专栏&#xff1a;MySQL 目录 数据类型分类数值类型tinyint类型数值越界测试结果说明 bit类型基本语法使用注意事项 小数类型float语法使用注意事项 decimal语…

深度剖析C++17中的std::optional:处理可能缺失值的利器

文章目录 一、基本概念与设计理念二、构建与初始化&#xff08;一&#xff09;默认构造&#xff08;二&#xff09;值初始化&#xff08;三&#xff09;使用std::make_optional&#xff08;四&#xff09;使用std::nullopt 三、访问值&#xff08;一&#xff09;value()&#x…