当前位置: 首页 > news >正文

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自定义绘制项,提供绘制功能用于自定义控件、图形或动画绘制

相关文章:

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

qt-QtQuick笔记之常见项目类简要介绍 code review! 文章目录 qt-QtQuick笔记之常见项目类简要介绍1.QQuickItem2.QQuickRectangle3.QQuickImage4.QQuickText5.QQuickBorderImage6.QQuickTextInput7.QQuickButton8.QQuickSwitch9.QQuickListView10.QQuickGridView11.QQuickPopu…...

Continuous Batching 连续批处理

原始论文题目: Continuous Batching — ORCA: a distributed serving system for Transformer-based generative models 关键词: Continuous Batching, iteration-level scheduling, selective batching 1.迭代级调度(iteration-level scheduling) Orca系统又由几个关键…...

海外问卷调查渠道查如何设置:最佳实践+示例

随着经济全球化和一体化进程的加速&#xff0c;企业间的竞争日益加剧&#xff0c;为了获得更大的市场份额&#xff0c;对企业和品牌而言&#xff0c;了解受众群体的的需求、偏好和痛点才是走向成功的关键。而海外问卷调查才是获得受众群体痛点的关键&#xff0c;制作海外问卷调…...

把本地搭建的hexo博客部署到自己的服务器上

配置远程服务器的git 安装git 安装依赖工具包 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel安装编译工具 yum install -y gcc perl-ExtUtils-MakeMaker package下载git&#xff0c;也可以去官网下载了传到服务器上 wget https://www.ke…...

初阶数据结构:链表(二)

目录 一、前言 二、带头双向循环链表 1.带头双向循环链表的结构 &#xff08;1)什么是带头&#xff1f; (2)什么是双向呢&#xff1f; &#xff08;3&#xff09;那什么是循环呢&#xff1f; 2.带头双向循环链表的实现 &#xff08;1&#xff09;节点结构 &#xff08;2…...

postgresql根据主键ID字段分批删除表数据

生产环境针对大表的处理相对比较麻烦。 方案1、直接truncate&#xff0c;可能会遇到系统卡主的情况&#xff0c;因为truncate的过程中会对表进行加锁&#xff0c;会导致数据不能正常的写入 方案2、创建一个同结构的表结构&#xff0c;rename旧表&#xff0c;不停业务rename表担…...

10.business english-global market

eco-friendly case study: 案例学习 At the workshop工作坊, they agreed to emphasize eco-friendliness,adapt messageing, and boost digital marketing to stand out globally. Our study shows that more people want eco-friendly products in different places.Looks …...

C 语言实现计算一年中指定日期是第几天 题】

引言 在编程的世界里&#xff0c;处理日期和时间相关的问题是非常常见的。比如在日历应用、任务管理系统、数据分析等场景中&#xff0c;经常需要计算某个日期在一年中是第几天。本文将详细介绍如何使用 C 语言来实现这一功能&#xff0c;通过分析代码的结构、逻辑以及可能存在…...

深入理解三高架构:高可用性、高性能、高扩展性的最佳实践

引言 在现代互联网环境下&#xff0c;随着用户规模和业务需求的快速增长&#xff0c;系统架构的设计变得尤为重要。为了确保系统能够在高负载和复杂场景下稳定运行&#xff0c;"三高架构"&#xff08;高可用性、高性能、高扩展性&#xff09;成为技术架构设计中的核…...

【反悔堆】力扣1642. 可以到达的最远建筑

给你一个整数数组 heights &#xff0c;表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。 你从建筑物 0 开始旅程&#xff0c;不断向后面的建筑物移动&#xff0c;期间可能会用到砖块或梯子。 当从建筑物 i 移动到建筑物 i1&#xff08;下标 从 0 开始 &#xff09;…...

关于使用Mybatis-plus的TableNameHandler动态表名处理器实现分表业务的详细介绍

引言 随着互联网应用的快速发展&#xff0c;数据量呈爆炸式增长。传统的单表设计在面对海量数据时显得力不从心&#xff0c;容易出现性能瓶颈、查询效率低下等问题。为了提高数据库的扩展性和响应速度&#xff0c;分表&#xff08;Sharding&#xff09;成为了一种常见的解决方案…...

docker 安装 redis 详解

在平常的开发工作中&#xff0c;我们经常会用到 redis&#xff0c;那么 docker 下应该如何安装 redis 呢&#xff1f;简单来说&#xff1a;第一步&#xff1a;拉取redis镜像&#xff1b;第二步&#xff1a;设置 redis.conf 配置文件&#xff1b;第三步&#xff1a;编写 docker-…...

56. 合并区间

【题目】&#xff1a;56. 合并区间 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {// 按照左端点排序sort(intervals.begin(), intervals.end(), [&](vector<int> lhs, vector<int> rhs)…...

BOM对象location与数组操作结合——查询串提取案例

BOM对象location与数组操作结合——查询串提取案例 前置知识 1. Location 对象 Location 对象是 JavaScript 提供的内置对象之一&#xff0c;它表示当前窗口或框架的 URL&#xff0c;并允许你通过它操作或获取 URL 的信息。可以通过 window.location 访问。 主要属性&#…...

Jetson Orin Nano Super之 onnxruntime 编译安装

Jetson Orin Nano Super之 onnxruntime 编译安装 1. 源由2. 步骤步骤一&#xff1a;安装3.26 cmake步骤二&#xff1a;下载代码步骤三&#xff1a;编译代码步骤四&#xff1a;找到安装包步骤五&#xff1a;安装whl包 3. 注意4. 参考资料 1. 源由 Build onnxruntime 1.19.2 fai…...

开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)

在 WSL 环境中配置&#xff1a;WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 node 官网&#xff1a;https://nodejs.org/zh-cn/download 点击【下载】&#xff0c;选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器 根据下面代码提示依次执行对应代码即可 基本概…...

[SWPUCTF 2022 新生赛]js_sign

题目 查看页面源代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><style>body {background-color: rgb(255, 255, 255);}</style> </head> <body><input id"flag" /><button>Check…...

农业信息化的基本框架

农业信息化的主要研究内容 基于作物模型的相关研究 作物生长模拟模型以及模型评价、模型的应用作物模型应用&#xff0c;包括&#xff1a;作物生态系统过程、生产管理措施、区域作物产量评估与气候变化对产量影响预测、基于作物模型的决策支持系统 数据挖掘、知识工程及应用、管…...

OpenAI的真正对手?DeepSeek-R1如何用强化学习重构LLM能力边界——DeepSeek-R1论文精读

2025年1月20日&#xff0c;DeepSeek-R1 发布&#xff0c;并同步开源模型权重。截至目前&#xff0c;DeepSeek 发布的 iOS 应用甚至超越了 ChatGPT 的官方应用&#xff0c;直接登顶 AppStore。 DeepSeek-R1 一经发布&#xff0c;各种资讯已经铺天盖地&#xff0c;那就让我们一起…...

Vue 3 中的父子组件传值:详细示例与解析

在 Vue 3 中&#xff0c;父子组件之间的数据传递是一个常见的需求。父组件可以通过 props 将数据传递给子组件&#xff0c;而子组件可以通过 defineProps 接收这些数据。本文将详细介绍父子组件传值的使用方法&#xff0c;并通过优化后的代码示例演示如何实现。 1. 父子组件传值…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...