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

news2024/10/23 23:55:40

文章目录

  • 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. 添加树形控件的层级元素。

在这里插入图片描述

            

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件架构的 “4+1” 视图(附视图案例)

简介 Philippe Kruchten 在《IEEE Software》上发表的《The 41 View Model of Architecture》论文中提出了“41”视图方法,该方法被RUP采纳。“41”视图模型通过逻辑视图、进程视图(也称为处理视图)、物理视图、开发视图 和 场景视图 五个视…

YOLOv9改进,YOLOv9引入FLAttention注意力机制(ICCV2023),并二次创新RepNCSPELAN4结构

摘要 自我注意的二次计算复杂度在将 Transformer 模型应用于视觉任务时,这是一个长期存在的问题。除了减少注意力区域外,线性注意力也被认为是避免过多计算成本的有效解决方案。通过使用精心设计的映射函数来逼近 Softmax,线性注意力可以在自注意力操作中切换计算顺序并实现…

HTTP Proxy环境下部署Microsoft Entra Connect和Health Agents

在企业环境中,时常需要通过使用HTTP Proxy访问Internet,在使用HTTP Proxy访问Internet的环境中部署Microsoft Entra Connect和Microsoft Entra Connect Health Agents可能会遇到一些额外的配置步骤,以便这些服务能够正常连接到Internet。 一…

再Android10上实现检测AHD摄像头是否接入

项目有个需要,需要知道tp9951是否接入AHD摄像头 1,驱动层可以通过读取寄存器的值来检测是否接入AHD摄像头 tp9951_write_reg(0x40, 0x00); //select decoder page tp9951_write_reg(0x41, ch); val tp9951_read_reg(TP_INPUT_STATUS_REG);…

vscode默认添加python项目的源目录路径到执行环境(解决ModuleNotFoundError: No module named问题)

0. 问题描述 vscode中编写python脚本,导入工程目录下的其他模块,出现ModuleNotFoundError: No module named 错误 在test2的ccc.py文件中执行print(sys.path) 查看路径 返回结果发现并无’/home/xxx/first_demo’的路径,所以test2下面的文…

Vscode + EIDE +CortexDebug 调试Stm32(记录)

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configurations": [{"cwd": "${workspaceRoot…

w~自动驾驶合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12320882 #自动驾驶数据集全面调研 自动驾驶技术在硬件和深度学习方法的最新进展中迅速发展,并展现出令人期待的性能。高质量的数据集对于开发可靠的自动驾驶算法至关重要。先前的数据集调研试图回顾这些数据集&…

Djang学习- URL反转

代码中url书写规范&#xff1a; 、 url反向解析 urls: path(test/url, views.test_url),path(test_result/<int:age>, views.test_result, name"rl") views: def test_url(request):return render(request, test_url.html)def test_result(request,age):re…

Vue3学习:vite项目中图片不能显示,报错 require is not defined

今天做了一个案例“给你喜欢的人送花”&#xff0c;如果喜欢谁&#xff0c;就给谁送花&#xff0c;最多可以送5朵。运行效果如下。 这个项目是使用 npm create vitelatest 命令创建的。 包括2个组件&#xff1a; 根组件App.vue子组件HelloVote.vue。 目录结构如图所示&#x…

资讯 | 财富通科技政务协同办公管理软件通过麒麟软件适配认证

2024年9月25日&#xff0c;财富通科技研发的政务协同办公管理软件成功通过中国国产操作系统麒麟软件的适配认证。本次认证是继公司区块链产品“基于区块链的企业及人员资质数字证书服务平台”认证以后得第二次认证。这一成就标志着财富通科技在推动国产软件生态建设方面迈出了坚…

基于SSM+微信小程序的家庭记账本管理系统(家庭1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 1、管理员端功能有首页、个人中心、用户管理&#xff0c;消费详情管理、收入详情管理、系统管理等。 2、用户端功能有首页、消费详情、收入详情、论坛信息、我的等功能。 2、项目技术 …

数据结构作业day2

作业一&#xff1a;结构体数组存储学生信息&#xff08;姓名&#xff0c;年龄&#xff0c;分数&#xff09;&#xff0c;完成输入学生信息&#xff0c;输出学生信息&#xff0c;求学生成绩之和&#xff0c;求最低学生成绩。 main.c #include "test.h"int main(int …

GitLab 老旧版本如何升级?

极狐GitLab 正式对外推出 GitLab 专业升级服务 https://dl.gitlab.cn/cm33bsfv&#xff01; 专业的技术人员为您的 GitLab 老旧版本实例进行专业升级&#xff01;服务详情可以在官网查看详细解读&#xff01; 那些因为老旧版本而被攻击的例子 话不多说&#xff0c;直接上图&a…

视频转GIF,5个简单好用的转换工具任你选!

GIF&#xff08;Graphics Interchange Format&#xff09;&#xff0c;作为一种轻量级的图像文件格式&#xff0c;因其能够存储多帧图像形成简单动画而广受欢迎。无论是动画影视片段&#xff0c;还是日常生活的小确幸&#xff0c;GIF都能将其定格为生动的视觉语言。当我们想要将…

FileLink跨网文件摆渡系统:重构跨网文件传输新时代

在数字化浪潮的推动下&#xff0c;企业对于数据的高效利用和安全管理提出了前所未有的要求。面对不同网络环境间的文件传输难题&#xff0c;传统方法往往显得力不从心&#xff0c;不仅效率低下&#xff0c;还存在极大的安全隐患。而FileLink跨网文件摆渡系统的出现&#xff0c;…

深信服超融合HCI6.8.0R2滚动热升级至HCI6.9.1

PS&#xff1a;滚动热升级没有业务影响&#xff0c;集群内主机逐台升级&#xff0c;会自动迁移运行中的虚拟机至其他主机&#xff1b; 整体巡检加上升级完成大概要三个小时的时间。如果在升级过程中&#xff0c;有跨集群迁移的任务&#xff0c;需要先停掉&#xff0c;不然无法…

excel将文本型数字转变为数值型数字

问题导入&#xff1a;复制数字到excel表格中&#xff0c;但是表格中数字显示为文本&#xff0c;且无法通过常规方法转变为可进行四则运算的数字。例如&#xff1a;在i3单元格中输入常规的转换方法仍然报错。在j3单元格中输入ISTEXT(H3)显示h3单元格确实为文本。 解决办法&#…

记录:网鼎杯2024赛前热身WEB01

目录扫描&#xff0c;发现上传点&#xff0c;判断可能存在文件上传漏洞&#xff0c;并根据文件后缀判断网站开发语言为php 编写蚁剑一句话木马直接上传 蚁剑连接 这里生成 的flag是随机的&#xff0c;因为烽火台反作弊会随机生成环境&#xff0c;在一顿查找后&#xff0c;在hom…

自动驾驶系列—激光雷达点云数据在自动驾驶场景中的深度应用

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Leetcode 柱状图中最大的矩形

h 是右边界&#xff0c;连续多个高度递增的柱子&#xff0c;如果遇到下一个 h < 栈顶元素(是最大的元素&#xff0c;单调递增栈)&#xff0c;那么会不断出栈来更新计算最大面积。 并非是一次性计算出最大面积的&#xff0c;很重要的一点是while (!stack.isEmpty()这一部分的…