列表控件列表表格树

QListWidget

QListWidget 是 Qt 框架中的一个部件,用于在图形用户界面中显示一个列表。这个列表可以包含文本项、图标或者其他自定义的部件。它非常适合用于呈现一系列可选择的元素。

基本属性和设置

  1. NoSelection:不允许选择。用户无法选择任何项。

  2. SingleSelection:单选。一次只能选择一个项。

  3. MultiSelection:多选。用户可以通过点击来选择多个项,而不需要按住键盘上的任何键。

  4. ExtendedSelection:扩展选择。用户可以通过单击选择单个项,通过Ctrl键单击来切换项的选择状态,或者通过Shift键单击来选择一系列项。

  5. ContiguousSelection:连续选择。用户可以通过单击选择单个项,或者通过Shift键单击来选择一系列连续的项。

遍历元素和编辑列表的实现

    • triggers:是一个位掩码,指定了编辑的触发条件。

常用的编辑触发条件包括:

  • QAbstractItemView::NoEditTriggers:不允许编辑。
  • QAbstractItemView::CurrentChanged:当当前项改变时触发编辑。
  • QAbstractItemView::DoubleClicked:双击项时触发编辑。
  • QAbstractItemView::SelectedClicked:单击选中的项时触发编辑。
  • QAbstractItemView::EditKeyPressed:按下编辑键(例如 Enter)时触发编辑
  • QListWidgetItem中常用的标志包括:
  • Qt::ItemIsSelectable:项可以被选择。
  • Qt::ItemIsEditable:项可以被编辑。
  • Qt::ItemIsDragEnabled:可以从列表中拖动项。
  • Qt::ItemIsDropEnabled:可以将拖动的项放入列表。
  • Qt::ItemIsUserCheckable:项可以有一个复选框或类似的控件供用户勾选。

  • 参数
    • row:列表中项的行号索引。
  • 返回值:返回指定行的 QListWidgetItem。如果索引无效,则返回 nullptr
QListWidgetItem *QListWidget::item(int row) const

排序功能

QTableWidget

属性

源码

插入

setHorizontalHeaderItem

  • column: 这是一个 int 类型的参数,指定要设置的列的索引。索引是从0开始的,所以第一列的索引是0,第二列是1,依此类推。

  • item: 这是一个指向 QTableWidgetItem 的指针。这个参数是你要设置的新表头项。你可以通过这个 QTableWidgetItem 对象来定义列标题的文本、图标等属性。

horizontalHeaderItemQTableWidget 类中的一个方法,它用于获取表格中某一列的水平表头项(即列标题)。这个方法返回一个指向 QTableWidgetItem 的指针,代表了指定列的表头

QTableWidgetItem *horizontalHeaderItem(int column) const;

column: 这是一个 int 类型的参数,表示你想获取表头的列的索引。索引从0开始,即第一列的索引是0

void setVerticalHeaderLabels(const QStringList &labels);

const QStringList &labels: 这是一个字符串列表,每个字符串对应表格的一行,用于设置每一行的标题。

setItem函数

void setItem(int row, int column, QTableWidgetItem *item);
  • int row: 目标单元格的行号。
  • int column: 目标单元格的列号。
  • QTableWidgetItem *item: 要放置在指定单元格中的QTableWidgetItem对象。这个对象包含了单元格将要显示的数据。

插入列标题

使用 setHorizontalHeaderLabelssetHorizontalHeaderItem 来设置列标题:

  1. setHorizontalHeaderLabels:一次性设置所有列的标题。

setHorizontalHeaderItem:为特定列设置标题。

插入行标题

使用 setVerticalHeaderLabelssetVerticalHeaderItem 来设置行标题:

  1. setVerticalHeaderLabels:一次性设置所有行的标题。

  • setVerticalHeaderItem:为特定行设置标题。

插入图片

获取选中数据

QList<QTableWidgetItem *> selectedItems() const;

selectedItems()QTableWidget 类中的一个方法,用于获取用户在表格中所选取的所有项(QTableWidgetItem 对象)。

  • 返回值是一个QTableWidgetItem指针的列表(QList<QTableWidgetItem *>)。列表中的每个元素都是指向被选中的表格项的指针。
  1. QAbstractItemView::NoSelection:不允许选择。
  2. QAbstractItemView::SingleSelection:只能选择一个项目。
  3. QAbstractItemView::MultiSelection:可以通过点击选择多个项目,不需要按住键盘上的任何修饰键。
  4. QAbstractItemView::ExtendedSelection:在这种模式下,用户可以使用Shift或Control键来选择多个项目。
  5. QAbstractItemView::ContiguousSelection:用户可以选择连续的项目范围。

QModelIndex

常用方法:

  • row(): 返回索引所在的行。
  • column(): 返回索引所在的列。
  • parent(): 返回父索引(对于树状模型特别有用)。
  • child(int row, int column): 返回位于给定行列的子索引。
  • data(int role = Qt::DisplayRole): 返回索引处的数据。role参数定义了数据的类型,如显示文本、图标等。
  • isValid(): 检查索引是否有效。

信号

  1. cellEntered:

    • 这个信号属于 QTableViewQTableWidget 类。
    • 当用户的鼠标指针进入表格的一个单元格时,会发出 cellEntered 信号。
    • 这个信号通常用于表格视图,用于跟踪鼠标在表格中的移动。
    • 信号原型通常为 void cellEntered(int row, int column),提供了进入的单元格的行和列索引。
  2. itemEntered:

    • 这个信号属于 QListWidgetQTreeView 类。
    • 当用户的鼠标指针进入这些控件的一个项(item)时,会发出 itemEntered 信号。
    • 这个信号通常用于列表或树形控件,用于跟踪鼠标在项之间的移动。
    • 对于 QListWidget,信号原型通常为 void itemEntered(QListWidgetItem *item),提供了鼠标进入的项。
    • 对于 QTreeView,信号原型通常为 void itemEntered(QTreeWidgetItem *item),同样提供了鼠标进入的项。

sectionClicked 是一个信号,通常与 QHeaderView 类相关联。QHeaderView 类用于表示表格(如 QTableView)或列表(如 QListViewQTreeView)中的表头。sectionClicked 信号在用户点击表头的某个部分(section)时发出。

这个信号的典型用途包括:

  1. 排序:当用户点击表头的某一列时,可以对表格的数据按照该列进行排序。这是 sectionClicked 信号最常见的用途。

  2. 自定义操作:开发者可以利用这个信号来执行其他自定义操作,比如显示一个上下文菜单,或改变列的显示方式等。

样式

QTreeWidget

属性

信号

样式

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目风险管理

风险&#xff0c;简单来说&#xff0c;就是在特定环境下、特定时间段内&#xff0c;某种损失发生的可能性。它是客观存在的&#xff0c;不以人的意志为转移&#xff0c;具有损失性、不确定性、普遍性、社会性等特点。风险的特点可以用几个“不知道”来概括&#xff1a;不知道什…

suse15 系统分区信息损坏修复案例一则

关键词 suse linux、系统分区fdisk、分区类型testdisk、grub2、bios There are many things that can not be broken&#xff01; 如果觉得本文对你有帮助&#xff0c;欢迎点赞、收藏、评论&#xff01; 一、问题现象 业务反馈一台suse服务器&#xff0c;因错误执行了fdisk分区…

【Hadoop3.3.6全分布式环境搭建】

说明: 完成Hadoop全分布式环境搭建,需准备至少3台虚拟机(master slave01 slave02)环境: VMWare + Centos7 + JDK1.8+ Hadoop3.3.6主机规划: 主节点:master从节点:slave01 , slave02 一、准备工作 1、所有主机安装jdk 上传jdk-8u171-linux-x64.tar.gz到/root目录下,然后…

OJ:数字三角形(搜索)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;每日一练 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f337;1.问题描述&#xff1a; ⛳️题目描述&#xff1a; 示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路…

声明式 GUI 工具包:响应式、跨平台、多语言 | 开源日报 No.230

slint-ui/slint Stars: 14.5k License: NOASSERTION slint 是一个声明式的 GUI 工具包&#xff0c;用于为 Rust、C 或 JavaScript 应用程序构建原生用户界面。 可扩展性&#xff1a;支持响应式 UI 设计&#xff0c;跨操作系统和处理器架构的跨平台使用&#xff0c;并支持多种…

Linux 服务器硬件及RAID配置实战

服务器详解 服务器分类 可以分为&#xff1a;塔式服务器、机架服务器、刀片服务器、机柜服务器等。 其中以机架式居多 服务器架构 服务器品牌&#xff1a; 戴尔、AMD、英特尔、惠普、华为、华3&#xff08;H3C&#xff09;、联想、浪潮、长城 服务器规格&#xff1a; 规格…

*Linux系统的进程和计划任务管理

目录 一、查看进程 1、程序和进程的关系 *2、ps查看静态进程信息 1&#xff09;ps aux 2&#xff09;ps -elf *3、top查看动态进程信息 4、pgrep查看进程信息 5、pstree查看进程树 二、控制进程 1、进程启动方式 2、进程的前后台调度 3、终止进程的运行 三、计划任…

SQLite R*Tree 模块(三十三)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite FTS3 和 FTS4 扩展(三十二) 下一篇:SQLite轻量级会话扩展&#xff08;三十四&#xff09; 1. 概述 R-Tree 是一个特殊的 专为执行范围查询而设计的索引。R-树最常见的是 用于地理空间系统&#xff0c;其中…

[论文阅读链接]

CVPR2023&#xff1a;Learning Human-to-Robot Handovers from Point Clouds http://t.csdnimg.cn/OfSnShttp://t.csdnimg.cn/OfSnS仿真工具&#xff1a;dm_control: Software and Tasks for Continuous Control dm_control 翻译: Software and Tasks for Continuous Control…

Idea中使用Git详细教学

目录 一、配置 Git 二、创建项目远程仓库 三、初始化本地仓库 方法一&#xff1a; 方法二&#xff1a; 四、连接远程仓库 五、提交与拉取到本地仓库 六、推送到远程仓库 七、克隆远程仓库到本地 方法一&#xff1a; 方法二&#xff1a; 八、Git分支操作 一、配置 G…

嵌入式学习57-ARM7(字符设备驱动框架led)

知识零碎&#xff1a; kernel 内核 printk 内核打印 cat /proc/devices mknod ? 查看指令 gcc -oapp hello.c 字符设备驱动流程 字符设备程序运行流程 gcc中-c和-o是编译时可选的参数 -c …

使用python-can和cantools实现arxml报文解析、发送和接收的完整指南

文章目录 背景一、硬件支持二、环境准备1、python解释器安装2、python库安装 三、 收发案例四、 方法拓展1、canoe硬件调用2、回调函数介绍 结论 背景 在汽车行业中&#xff0c;CAN (Controller Area Network) 总线是用于车辆内部通信的关键技术。arxml文件是一种用于描述CAN消…

linux下摄像头设置固定的设备名

目录 2.热插拔udev机制 3.设置udev的规则 1.查看usb ID 2. 查看usb设备的信息 3.编译规则 4.拓展 1.问题的出现 通过我之前的文章配置完摄像头的开机自启动之后我们会发现有的时候会出现启动不了的情况&#xff0c;通过实验我发现是摄像头的设备名发生了改变&#xff0c;…

网络安全产品---态势感知EDR

态势感知 what SA&#xff0c;Situational Awareness 是对一定时间和空间内的环境元素进行感知&#xff0c;并对这些元素的含义进行理解&#xff0c;最终预测这些元素在未来的发展状态。 why 安全防护思想已经从过去的被动防御向主动防护和智能防护转变。如果不做到主动防御…

【JS】js数字转k、w结尾 | 1000 = 1k

问题 数字转k、w结尾 如&#xff1a;10001k 100001w 码 /*** 数字转k,w* param {Number} num * returns String*/ const numberTokw num > {if (num < 1000) return numlet endStr w,numVal 10000;if (num > 999 && num < 10000) {endStr knumVal …

嵌入式物联网实战开发笔记-乐鑫ESP32芯片功能对比以及功能选型【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ATvRnAZvxkev-PJfd3EAPg?pwd4e33 提取码&#xff1a;4e33 2.1 初识 ESP32 ESP32-S3 是一款低功耗的 MCU 系统级芯片 (SoC)&#xff0c;支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (…

minio如何配置防盗链

MinIO 是一个开源的对象存储服务器&#xff0c;用于存储大量的数据&#xff0c;同时提供了丰富的功能和 API。配置防盗链可以帮助你控制谁可以访问存储在 MinIO 上的对象。以下是在 MinIO 中配置防盗链的一般步骤&#xff1a; 编辑 config.json 文件&#xff1a; 找到 MinIO 服…

【游戏专区】飞机大战

打过飞机的人都知道&#xff0c;不是那么好打滴&#xff0c;求得麻袋&#xff0c;甩掉你那脑子里的黄色信息。活不多说&#xff0c;我们开始吧。 1、easyX的原理 基于Windows图形编程&#xff0c;将Windows下的复杂程序过程进行封装&#xff0c;仅给用户提供一个简单熟悉的接…

第63天:服务攻防-框架安全CVE 复现DjangoFlaskNode.JSJQuery

目录 思维导图 案例一&#xff1a;JavaScript-开发框架安全-Jquery&Node node.js目录穿越 CVE-2021-21315命令执行 Jquery CVE-2018-9207 案例二&#xff1a;Python-开发框架安全-Django&Flask django cve_2019_14234 CVE-2021-35042 flask ssti 思维导图 案…

【网站项目】党员之家服务系统小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…