当前位置: 首页 > 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…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...