当前位置: 首页 > 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自定义绘制项,提供绘制功能用于自定义控件、图形或动画绘制
http://www.lryc.cn/news/527568.html

相关文章:

  • Continuous Batching 连续批处理
  • 海外问卷调查渠道查如何设置:最佳实践+示例
  • 把本地搭建的hexo博客部署到自己的服务器上
  • 初阶数据结构:链表(二)
  • postgresql根据主键ID字段分批删除表数据
  • 10.business english-global market
  • C 语言实现计算一年中指定日期是第几天 题】
  • 深入理解三高架构:高可用性、高性能、高扩展性的最佳实践
  • 【反悔堆】力扣1642. 可以到达的最远建筑
  • 关于使用Mybatis-plus的TableNameHandler动态表名处理器实现分表业务的详细介绍
  • docker 安装 redis 详解
  • 56. 合并区间
  • BOM对象location与数组操作结合——查询串提取案例
  • Jetson Orin Nano Super之 onnxruntime 编译安装
  • 开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)
  • [SWPUCTF 2022 新生赛]js_sign
  • 农业信息化的基本框架
  • OpenAI的真正对手?DeepSeek-R1如何用强化学习重构LLM能力边界——DeepSeek-R1论文精读
  • Vue 3 中的父子组件传值:详细示例与解析
  • 回顾2024,展望2025
  • 【Python实现机器遗忘算法】复现2021年顶会 AAAI算法Amnesiac Unlearning
  • Vue 3 30天精进之旅:Day 03 - Vue实例
  • 【ArcGIS微课1000例】0141:提取多波段影像中的单个波段
  • 【第九天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-六种常见的图论算法(持续更新)
  • 落地 轮廓匹配
  • 【漫话机器学习系列】064.梯度下降小口诀(Gradient Descent rule of thume)
  • JAVA(SpringBoot)集成Kafka实现消息发送和接收。
  • AI刷题-蛋糕工厂产能规划、优质章节的连续选择
  • 在线可编辑Excel
  • 什么是词嵌入?Word2Vec、GloVe 与 FastText 的区别