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

【Qt】控件——Qt多元素控件、常见的多元素控件、多元素控件的使用、List Widget、Table Widget、Tree Widget

文章目录

  • Qt
    • Qt多元素控件
      • List Widget
      • Table Widget
      • Tree Widget

Qt

在这里插入图片描述
  

Qt多元素控件

List Widget

  使用 QListWidget 能够显示一个纵向的列表。

  

属性说明
currentRow当前被选中的是第几行。
count一共有多少行。
sortingEnabled是否允许排序。
isWrapping是否允许换行。
itemAlignment元素的对齐方式。
selectRectVisible被选中的元素矩形是否可见。
spacing元素之间的间隔。

  

方法说明
addItem(const QString& label)、addItem(QListWidgetItem *item)列表中添加元素。
currentItem()返回 QListWidgetItem*,表示当前选中的元素。
setCurrentItem(QListWidgetItem* item)设置选中哪个元素。
setCurrentRow(int row)设置选中第几行的元素。
insertItem(const QString& label, int row)、insertItem(QListWidgetItem *item, int row)在指定的位置插入元素。
item(int row)返回 QListWidgetItem*,表示第 row 行的元素。
takeItem(int row)删除指定行的元素,返回 QListWidgetItem*,表示是哪个元素被删除了。

  

信号说明
currentItemChanged(QListWidgetItem* current, QListWidgetItem* old)选中不同元素时会触发。参数是当前选中的元素和之前选中的元素。
currentRowChanged(int)选中不同元素时会触发。参数是当前选中元素的行数。
itemClicked(QListWidgetItem* item)点击某个元素时触发。
itemDoubleClicked(QListWidgetItem* item)双击某个元素时触发。
itemEntered(QListWidgetItem* item)鼠标进入元素时触发。

  

  在上述介绍中,涉及到一个关键的类 ——QListWidgetItem。这个类表示 QListWidget 中的一个元素。其核心方法本质上是由 “文本 + 图标” 构成的。

  

方法说明
setFont设置字体。
setIcon设置图标。
setHidden设置隐藏。
setSizeHint设置尺寸。
setSelected设置是否选中。
setText设置文本。
setTextAlignment设置文本对齐方式。

  

  1. 代码示例:创建一个 QListWidget,并且我们可以在里面进行添加元素和删除元素的操作。

在这里插入图片描述
  

  1. 连接槽函数,addItem()的作用就是向 QListWidget 控件中添加 QListWidgteItem 元素;takeItem 作用是删除控件中的元素。

在这里插入图片描述

  

Table Widget

  Table Widget 使用 QTableWidget 表示一个表格控件。一个表格中包含若干行,每一行又包含若干列。表格中的每个单元格,是一个 QTableWidgetItem 对象。

  

方法说明
item(int row, int column)根据行数和列数获取指定的 QTableWidgetItem*。
setItem(int row, int column, QTableWidget*)根据行数和列数设置表格中的元素。
currentItem()返回被选中的元素 QTableWidgetItem*。
currentRow()返回被选中元素是第几行。
currentColumn()返回被选中元素是第几列。
row(QTableWidgetItem*)获取指定 item 是第几行。
column(QTableWidgetItem*)获取指定 item 是第几列。
rowCount()获取行数。
columnCount()获取列数。
insertRow(int row)在第 row 行处插入新行。
insertColumn(int column)在第 column 列插入新列。
removeRow(int row)删除第 row 行。
removeColumn(int column)删除第 column 列。
setHorizontalHeaderItem(int column, QTableWidget*)设置指定列的表头。
setVerticalHeaderItem(int row, QTableWidget*)设置指定行的表头。

  

  QTableWidgetItem 核心方法:

方法说明
row()获取当前是第几行。
column()获取当前是第几列。
setText(const QString&)设置文本。
setTextAlignment(int)设置文本对齐。
setIcon(const QIcon&)设置图标。
setSelected(bool)设置被选中。
setSizeHints(const QSize&)设置尺寸。
setFont(const QFont&)设置字体。

  

信号说明
cellClicked(int row, int column)点击单元格时触发。
cellDoubleClicked(int row, int column)双击单元格时触发。
cellEntered(int row, int column)鼠标进入单元格时触发。
currentCellChanged(int row, int column, int previousRow, int previousColumn)选中不同单元格时触发。

  

  1. 创建表格控件QTableWidget。

在这里插入图片描述

  

  1. 使用setItem向表格控件中添加元素。
    在这里插入图片描述

  

Tree Widget

  Tree Widget 使用 QTreeWidget 表示一个树形控件。里面的每个元素都是一个 QTreeWidgetItem,每个 QTreeWidgetItem 可以包含多个文本和图标,每个文本 / 图标为一个列。

  可以给 QTreeWidget 设置顶层节点(顶层节点可以有多个),然后再给顶层节点添加子节点,从而构成树形结构。这种结构非常适合展示具有层次关系的数据,比如文件系统目录结构、组织结构图等。

  

方法说明
clear清空所有子节点
addTopLevelItem(QTreeWidgetItem* item)新增顶层节点
topLevelItem(int index)获取指定下标的顶层节点.
topLevelItemCount()获取顶层节点个数
indexOfTopLevelItem(QTreeWidgetItem* item)查询指定节点是顶层节点中的下标
takeTopLevelItem(int index)删除指定的顶层节点. 返回 QTreeWidgetItem* 表示被删除的元素
currentItem()获取到当前选中的节点, 返回 QTreeWidgetItem*
setCurrentItem(QTreeWidgetItem* item)选中指定节点
setExpanded(bool)展开/关闭节点
setHeaderLabel(const QString& text)设置 TreeWidget 的 header 名称。

  

信号说明
currentItemChanged (QTreeWidgetItem* current, QTreeWidgetItem* old)切换选中元素时触发
itemClicked (QTreeWidgetItem* item, int col)点击元素时触发
itemDoubleClicked (QTreeWidgetItem* item, int col)双击元素时触发
itemEntered (QTreeWidgetItem* item, int col)鼠标标进⼊时触发
itemExpanded (QTreeWidgetItem* item)元素被展开时触发
itemCollapsend (QTreeWidgetItem* item)元素被折叠时触发。

  

  QTreeWidgetItem 核心属性

属性说明
text持有的文本
textAlignment文本对齐方式
icon持有的图表
font文本字体
hidden是否隐藏
disabled是否禁用
expand是否展开
sizeHint尺寸大小
selected是否选中

  

  QTreeWidgetItem 核心方法

方法说明
addChild (QTreeWidgetItem* child)新增子节点
childCount ()子节点的个数
child (int index)获取指定下标的子节点,返回 QTreeWidgetItem*
takeChild (int index)删除对应下标的子节点
removeChild (QTreeWidgetItem* child)删除对应的子节点
parent ()获取该元素的父节点

  

  1. 创建QTreeWidget树形控件。
    在这里插入图片描述
      

  2. 添加树形控件的层级元素。

在这里插入图片描述

            

相关文章:

【Qt】控件——Qt多元素控件、常见的多元素控件、多元素控件的使用、List Widget、Table Widget、Tree Widget

文章目录 QtQt多元素控件List WidgetTable WidgetTree Widget Qt Qt多元素控件 List Widget 使用 QListWidget 能够显示一个纵向的列表。 属性说明currentRow当前被选中的是第几行。count一共有多少行。sortingEnabled是否允许排序。isWrapping是否允许换行。itemAlignment元素…...

【图论】(五)最短路径算法(D / BF / SPFA / F / A*)

最短路径算法(D / BF / SPFA / F / A*) 1. 最短路径之dijkstra(D算法)思路模拟过程程序实现拓展 2. dijkstra算法堆优化思路程序实现 3. Bellman_ford 算法(BF算法)松弛模拟过程拓展 4. Bellman_ford 队列优…...

Scala中的reduce

作用:reduce是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的二元操作(即取两个元素进行操作)对集合中所有的元素进行递归处理,并最终将其合并为一个值。 语法&#xff1…...

调查显示软件供应链攻击增加

OpenText 发布了《2024 年全球勒索软件调查》,强调了网络攻击的重要趋势,特别是在软件供应链中,以及生成式人工智能在网络钓鱼诈骗中的使用日益增多。 尽管各国政府努力加强网络安全措施,但调查显示,仍有相当一部分企…...

JMeter使用不同方式传递接口参数

1、使用 HTTP 请求中的参数: 在 JMeter 的测试计划中,添加一个 "HTTP 请求" 元件。 在 "HTTP 请求" 元件的参数化选项中,可以添加参数的名称和值。可以手动输入参数,也可以使用变量来传递参数值。 如果要使…...

《C++开发 AR 游戏:开启未来娱乐新潮流》

一、引言 在当今科技飞速发展的时代,增强现实(AR)技术正以惊人的速度改变着我们的生活和娱乐方式。从智能手机上的 AR 滤镜到沉浸式的 AR 游戏,这项技术的应用越来越广泛。而在众多编程语言中,C以其高效、强大的性能在…...

列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换

二、列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换 在 Python 中,列表、元组、集合、字典和 pandas 数据框(DataFrame)是常见的数据结构,它们可以通过多种方式相互转换。每种数据结构…...

美图设计室

美图设计室 体验地址:美图设计室 一、产品描述 美图设计室是美图公司推出的一款集图形设计、广告制作、海报制作等功能于一体的智能设计软件。它凭借其独特的界面设计、强大的工具功能、智能化辅助设计以及丰富的社区互动功能,为用户提供了一个便捷、高…...

张雪峰:如果你现在是计算机专业,一定要优先报网络安全,它是未来国家发展的大方向

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 “计算机专业 一定要优先报 网络安全 它是未来国家发展的大方向” 为什么推荐学网络安全? “没有网络安全就没有国家安全。”当前&#xff…...

Golang | Leetcode Golang题解之第486题预测赢家

题目: 题解: func PredictTheWinner(nums []int) bool {return total(nums, 0, len(nums) - 1, 1) > 0 }func total(nums []int, start, end int, turn int) int {if start end {return nums[start] * turn}scoreStart : nums[start] * turn total…...

【Golang】Go语言中如何创建Cron定时任务

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

Android compose 重建流程1

前言 本文是笔者学习Compose是如何自动触发UI刷新的笔记,可能缺乏一定可读性和教导性.(建议阅读参考文献更具启发性) 使用以下BOM作为研究环境. composeBom "2024.04.01" androidx-compose-bom { group "androidx.compose", name "compose-bom…...

C++:模板(2)

目录 非类型模板参数 模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 分离编译的概念 模板的分离编译 ​编辑 模板总结 非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参:在模板参数列表中,跟在class…...

Golang 并发编程:Context 包的使用与并发控制

文章目录 一、简介二、Context 的基本概念1. context 包常用函数 三、Context 的基本用法1. WithCancel:取消任务的上下文 四、超时控制:WithTimeout 和 WithDeadline1. 使用 WithTimeout 控制任务超时2. 使用 WithDeadline 设定截止时间 五、传递上下文…...

QGraphics类型学习使用【Qt】【C++】

QGraphics类型学习使用 需求过程全部完整代码 首先已知,QGraphicsView,QGraphicsScene, QGraphicsItem,分别称为:视图,场景,图元,图表就是各种各样的元素,图片元素,线条元…...

迁移学习和在线学习小结

迁移学习 英文小名: transform learning 简介: 把已经训练好的模型A为基本, 在新场景中, 根据新数据建立模型B 目的: 将某个领域或任务上学习到的知识/模式, 应用到不同但相关的领域/问题中 方法: 1.结构引用 适用情况: 新数据多, 场景相似度高, 可以基于原模型重新训练 2.特征…...

克里金插值(Kriging interpolation)

原理可参考该文件:克里金(Kriging)插值的原理与公式推导 - xg1990 matlab code可参考:Ordinary Kriging - File Exchange - MATLAB Central Some notes: 采用普通克里金时,采样的密度对结果影响非常大。若采样密度不够,误差会非…...

sealed class-kotlin中的封闭类

在 Kotlin 中,sealed class(密封类)是一种特殊的类,用于限制继承的类的数量。密封类可以被用来表示一组有限的类型,通常用于状态管理或表达多种可能的错误类型。 密封类用 sealed 关键字定义,这意味着只能…...

MongoDB Shell 基本命令(一)

MongoDB Shell 基本命令(一) 1. 基本概念 SQL术语/概念MongoDB术语/概念解释/说明databasedb数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary keyprimary key主键,Mon…...

Flink时间语义和时间窗口

前言 在实际的流计算业务场景中,我们会发现,数据和数据的计算往往都和时间具有相关性。 举几个例子: 直播间右上角通常会显示观看直播的人数,并且这个数字每隔一段时间就会更新一次,比如10秒。电商平台的商品列表&a…...

芯片设计复杂度量化:从经验估算到行业标准工时的工程实践

1. 芯片设计复杂度:从模糊感知到精确量化的工程革命在半导体行业摸爬滚打了十几年,我见过太多项目因为初期对“工作量”的误判而陷入泥潭。市场部拿着一个充满诱惑的规格书,研发总监拍着胸脯说“没问题,半年搞定”,结果…...

在Python项目中实现通过Taotoken轮询调用多个大模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Python项目中实现通过Taotoken轮询调用多个大模型 基础教程类,面向中高级开发者。当你在构建一个需要灵活调用不同大…...

终极指南:如何使用Pinpoint深度监控Spring Cloud Alibaba Sentinel熔断降级机制 [特殊字符]

终极指南:如何使用Pinpoint深度监控Spring Cloud Alibaba Sentinel熔断降级机制 🚀 【免费下载链接】pinpoint APM, (Application Performance Management) tool for large-scale distributed systems. 项目地址: https://gitcode.com/gh_mirrors/pi/…...

AI大模型赋能数据治理:小白也能掌握的5个高频场景与避坑指南(收藏备用)

数据治理是企业数字化转型难题,AI大模型带来破局点。本文阐述大模型如何解决效率低、门槛高、适配弱等痛点,提供3个高价值落地场景(非结构化数据治理、数据质量治理、数据资产化治理)及5个高频踩坑陷阱,并给出最佳实践…...

Windows 10下保姆级教程:Quartus Prime 18.0 + ModelSim SE 安装与破解全流程(含USB-Blaster驱动)

Windows 10下Quartus Prime 18.0与ModelSim SE完整安装指南 第一次接触FPGA开发的朋友们,面对Quartus Prime和ModelSim的安装过程可能会感到无从下手。这份指南将带你一步步完成从软件下载到最终验证的全过程,确保你的开发环境搭建顺利。不同于网络上零散…...

从Matlab到示波器:手把手教你用Vivado和FPGA实现20kHz SPWM信号(附完整代码)

从Matlab到示波器:FPGA实现20kHz SPWM信号的工程实践指南 在电力电子和电机控制领域,SPWM(正弦脉宽调制)技术因其高效和精确的特性而广受青睐。本文将带领读者完成一个完整的FPGA实现SPWM信号的工程流程,从Matlab数据生…...

Kali Linux更新卡住?别急,先检查DNS!手把手教你用阿里云/谷歌DNS解决网络问题

Kali Linux更新卡住?三步精准诊断DNS问题与高效解决方案 当你满心期待地在Kali Linux中执行apt update,却发现进度条像被冻住一般纹丝不动,这种体验就像在沙漠中寻找绿洲却始终看不到水源。作为安全测试人员的瑞士军刀,Kali Linux…...

5分钟快速上手:res-downloader 全网资源下载神器终极指南

5分钟快速上手:res-downloader 全网资源下载神器终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否经…...

AI辅助构建复古像素风Hacker News聚合器:全栈开发实战

1. 项目概述:一个AI驱动的复古风Hacker News聚合器最近在逛Hacker News的时候,我总感觉“Show HN”板块里那些有趣的个人项目像流星一样,刷一下就过去了,想回头再找特别费劲。作为一个喜欢折腾的开发者,我就在想&#…...

Power Automate调用Azure Foundry智能体

Power Automate调用Azure Foundry智能体一、创建Foundry智能体二、发送HTTP请求,调用Foundry智能体三、拓展一、创建Foundry智能体 先从创建开始吧 填好,然后直接审阅并创建就行了。一个资源下可以创建多个项目 转到资源 转到门户 这里有API密钥&…...