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

Qt:13.多元素控件(QLinstWidget-用于显示项目列表的窗口部件、QTableWidget- 用于显示二维数据表)

目录

一、QLinstWidget-用于显示项目列表的窗口部件:

1.1QLinstWidget介绍:

1.2属性介绍:

1.3常用方法介绍:

 1.4信号介绍:

1.5实例演示:

二、QTableWidget- 用于显示二维数据表:

2.1QTableWidget介绍:

2.2常用方法介绍:

2.3 信号介绍:


一、QLinstWidget-用于显示项目列表的窗口部件:

1.1QLinstWidget介绍:

  • QListWidget提供了一个用于显示项目列表的窗口部件。
  • QListWidget 继承自 QListView,并且使用一个简单的接口来管理列表中的项。
  • 它适合于那些需要一个列表框,但又不想使用 QListView 和 QAbstractItemModel 的复杂接口的情况。

1.2属性介绍:

count
  • 返回列表中项目的数量。
  • count()
currentItem
  • 获取当前选中的项目。
  • currentItem() const
  • setCurrentItem(QListWidgetItem *item)
currentRow
  • 获取当前选中项目的行号。如果未选中返回-1。
  • currentRow() const
  • setCurrentRow(int row)
selectionMode
  • 设置选择模式,可以是单选、多选等。
  • selectionMode() const
  • setSelectionMode(QAbstractItemView::SelectionMode mode)
item
  • 获取指定行的项目。
  • item(int row) const
itemWidget
  • 获取项目关联的窗口小部件。
  • itemWidget(QListWidgetItem *item) const
  • setItemWidget(QListWidgetItem *item, QWidget *widget)
sortingEnabled
  • 设置是否启用项目排序。
  • isSortingEnabled() const
  • setSortingEnabled(bool enable)
dropIndicatorPosition
  • 设置或获取拖放操作中的指示位置。
  • dropIndicatorPosition() const

1.3常用方法介绍:

addItem
  • 向列表中添加一个项目。
  • void addItem(const QString &label)
  • void addItem(QListWidgetItem *item)
currentItem
  • 获取/设置当前选中的项目。
  • void currentItem()
  • setCurrentItem(QListWidgetItem *item)
insertItem
  • 在指定行插入一个项目。
  • void insertItem(int row, const QString &label)
  • void insertItem(int row, QListWidgetItem *item)
item
  • 获取指定行的项目。
  • item(int row) const
sortItems
  • 对列表中的项目进行排序。
  • void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
clear
  • 移除列表中的所有项目。
  • clear();
takeItem
  • 从列表中移除指定行的项目并返回该项目。
  • QListWidgetItem* takeItem(int row)

 1.4信号介绍:

currentItemChanged当前选中项目发生变化时发出此信号。
itemActivated用户激活项目(例如通过双击或按 Enter 键)时发出此信号。
itemChanged项目内容发生变化时发出此信号。
itemDoubleClicked用户双击项目时发出此信号。
itemEntered鼠标指针进入项目时发出此信号。
itemClicked用户单击项目时发出此信号。
currentRowChanged当前选中的行发生变化时发出此信号。参数是新的当前选中行的行号。

1.5实例演示:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}//展示当前选中项,如果选中,显示当前高亮项
void Widget::on_listWidget_itemClicked(QListWidgetItem *item)
{if(item==nullptr)return;ui->label->setText("当前选中项:"+item->text());
}//添加项目,获取lineedit中的字段,添加到窗口作为新项目
void Widget::on_pushButton_clicked()
{const QString& str=ui->lineEdit->text();ui->listWidget->addItem(str);ui->lineEdit->clear();
}//删除项目,先获取选中项目的行号,然后通过行号删除项目
void Widget::on_pushButton_2_clicked()
{int num=ui->listWidget->currentRow();if(num<0)return;ui->listWidget->takeItem(num);}

 

二、QTableWidget- 用于显示二维数据表:

2.1QTableWidget介绍:

  • QTableWidget 是 Qt 提供的一个表格控件,用于显示二维数据表。
  • 它是 QTableView 的一个子类,提供了更高级的功能,允许用户直接在表格中添加、删除和编辑项。

2.2常用方法介绍:

item
  • 获取指定单元格的项目。
  • QTableWidgetItem* item(int row, int column) const
setItem
  • 设置指定单元格的项目。
  • void setItem(int row, int column, QTableWidgetItem *item)
currentItem
  • 获取当前选中的项目。
  • QTableWidgetItem* currentItem() const
currentRow
  • 获取当前选中项目的行号。
  • int currentRow() const
currentColumn
  • 获取当前选中项目的列号。
  • int currentColumn() const
row
  • 获取某个项所在的行。
  • int row(const QTableWidgetItem *item) const
column
  • 获取某个 QTableWidgetItem 所在的列。
  • int column(const QTableWidgetItem *item) const
rowCount
  • 获取表格的行数。
  • int rowCount() const
columnCount
  • 获取表格的列数。
  • int columnCount() const
insertRow
  • 在指定位置插入一行。
  • void insertRow(int row)

insertColumn

  • 在指定位置插入一列。
  • int column(const QTableWidgetItem *item) const
removeRow
  • 移除指定行。
  • void removeRow(int row)
removeColumn
  • 移除指定列。
  • void removeColumn(int column)
setHorizontalHeaderItem
  • 设置水平表头的单元格项目。
  • void setHorizontalHeaderItem(int column, QTableWidgetItem *item)
setVerticalHeaderItem
  • 设置垂直表头的单元格项目。
  • void setVerticalHeaderItem(int row, QTableWidgetItem *item)

2.3 信号介绍:

cellClicked(int row, int column)
  • 当用户单击单元格时触发。
  • row:被单击的单元格的行号。
  • column:被单击的单元格的列号。
cellDoubleClicked(int row, int column)
  • 当用户双击单元格时触发。
  • row:被双击的单元格的行号。
  • column:被双击的单元格的列号。
cellEntered(int row, int column)
  • 当鼠标进入单元格时触发。
  • row:鼠标进入的单元格的行号。
  • column:鼠标进入的单元格的列号。
currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
  • 当当前选中的单元格发生变化时触发。
  • currentRow:当前选中的单元格的行号。
  • currentColumn:当前选中的单元格的列号。
  • previousRow:之前选中的单元格的行号。
  • previousColumn:之前选中的单元格的列号。

相关文章:

Qt:13.多元素控件(QLinstWidget-用于显示项目列表的窗口部件、QTableWidget- 用于显示二维数据表)

目录 一、QLinstWidget-用于显示项目列表的窗口部件&#xff1a; 1.1QLinstWidget介绍&#xff1a; 1.2属性介绍&#xff1a; 1.3常用方法介绍&#xff1a; 1.4信号介绍&#xff1a; 1.5实例演示&#xff1a; 二、QTableWidget- 用于显示二维数据表&#xff1a; 2.1QTabl…...

恢复出厂设置手机变成砖

上周&#xff0c;许多Google Pixel 6&#xff08;6、6a、6 Pro&#xff09;手机用户在恢复出厂设置后都面临着设备冻结的问题。 用户说他们在下载过程中遇到了丢失 tune2fs 文件的错误 。 这会导致屏幕显示以下消息&#xff1a;“Android 系统无法启动。您的数据可能会被损坏…...

解决IntelliJ IDEA中克隆GitHub项目不显示目录结构的问题

前言 当您从GitHub等代码托管平台克隆项目到IntelliJ IDEA&#xff0c;却遇到项目目录结构未能正确加载的情况时&#xff0c;不必太过困扰&#xff0c;本文将为您提供一系列解决方案&#xff0c;帮助您快速找回丢失的目录视图。 1. 调整Project View设置 操作步骤&#xff1…...

Git错误分析

错误案例1&#xff1a; 原因&#xff1a;TortoiseGit多次安装导致&#xff0c;会记录首次安装路径&#xff0c;若安装路径改变&#xff0c;需要配置最后安装的路径。...

pom.xml中重要标签介绍

在 Maven 项目中&#xff0c;pom.xml 文件是项目对象模型&#xff08;POM&#xff09;的配置文件&#xff0c;它定义了项目的依赖关系、插件、构建配置等。以下是 pom.xml 文件中一些重要的标签及其作用&#xff1a; <modelVersion>&#xff1a; 定义 POM 模型的版本。当…...

大模型日报 2024-07-11

大模型日报 2024-07-11 大模型资讯 CVPR世界第二仅次Nature&#xff01;谷歌2024学术指标出炉&#xff0c;NeurIPS、ICLR跻身前十 谷歌2024学术指标公布&#xff0c;CVPR位居第二&#xff0c;超越Science仅次于Nature。CVPR、NeurIPS、ICLR三大顶会跻身TOP 10。 CVPR成全球第二…...

Redis基础教程(十六):Redis Stream

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…...

机器学习筑基篇,容器调用显卡计算资源,Ubuntu 24.04 快速安装 NVIDIA Container Toolkit!...

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Ubuntu 24.04 安装 NVIDIA Container Toolkit 什么是 NVIDIA Container Toolkit? 描述:NVIDIA Container Toolkit(容器工具包)使用户能够构建和运行 GPU 加速的容器,该工具包括一个容器运行时库和实用程序,用于自动…...

全网第一个java链接阿里云redis并可操作

添加依赖 redis.clients jedis 5.1.2 然后通过 JedisPool pool new JedisPool(host3, 6379); Jedis jedis pool.getResource(); jedis.auth(“username”,“password”); jedis.set(“ab”,“ab”); System.out.println(jedis.get(“ab”)); 即可链接成功&#xff0c;成功…...

Mysql ORDER BY是否走索引?

在 MySQL 中&#xff0c;ORDER BY 子句是否使用索引取决于多种因素&#xff0c;包括查询的具体情况、索引的类型和结构、查询中的其他条件等。 使用索引的情况 单列索引和 ORDER BY&#xff1a; 当 ORDER BY 子句中的列有单列索引时&#xff0c;MySQL 可以利用该索引来加速排序…...

图纸文档管理新篇章:陕西航沣与三品软件合作 优化研发流程

近日&#xff0c;陕西航沣新材料有限公司与三品软件正式达成合作协议&#xff0c;共同打造高效、智能的图纸文档管理平台。此次合作旨在赋能陕西航沣在高性能碳纤维增强纸基摩擦材料领域的创新与发展&#xff0c;提升企业的核心竞争力。 客户简介 陕西航沣新材料有限公司&…...

链式队列的实现

//1:创建循环队列 //2:判空 //4:入队 //5:出队 //6:遍历 //7:队列长度 //8:销毁 main.c #include"loop.h" int main(int argc, const char *argv[]) {loop_p Lloop_create();//创建loop_empty(L);//判空loop_length(L);//长度loop_input(L,10);//入队loop_input(L,…...

深入剖析3D企业云展厅的价值,多维展示和精准营销的创新结合

一、3D企业云展厅的多维展示优势 1、全方位展示企业展品 3D企业云展厅通过3D建模技术为企业提供了全方位的展品展示平台。相比于传统平面的图片或视频&#xff0c;3D展厅能够让用户以任意角度观看展品&#xff0c;仿佛置身于真实展厅中。这种全方位展示不仅能够增加展品的真实…...

前台线程和后台线程(了解篇)

在多线程编程中&#xff0c;理解线程的不同类型对于编写高效、稳定的程序至关重要。特别地&#xff0c;前台线程&#xff08;Foreground Threads&#xff09;与后台线程&#xff08;Background Threads&#xff09;在行为上有着根本的区别&#xff0c;这些区别直接影响到程序的…...

最强文本编辑器 VIM 指令大全

Vim 是从 Vi 编辑器发展出来的一款极其强大的文本编辑器&#xff0c;它保留了 Vi 编辑器的所有功能&#xff0c;并添加了许多新特性。Vim 具有代码补全、语法高亮、错误跳转、批量化处理等编辑功能&#xff0c;还支持异常丰富的插件扩展&#xff0c;且整个编辑全程可通过键盘完…...

卤味江湖中,周黑鸭究竟该抓住什么赛点?

近年来&#xff0c;卤味江湖的决斗从未停止。 随着休闲卤味、佐餐卤味等细分赛道逐渐形成&#xff0c;“卤味三巨头”&#xff08;周黑鸭、绝味食品、煌上煌&#xff09;的牌桌上有了更多新对手&#xff0c;赛道变挤了&#xff0c;“周黑鸭们”也到了转型关键期。 这个夏天&a…...

2024年西安铁一中集训DAY1---- 杂题选讲

文章目录 牛客练习赛125 E 联谊活动&#xff08;枚举&#xff0c;分讨&#xff09;牛客练习赛125 F 玻璃弹珠&#xff08;类莫队&#xff0c;离线询问&#xff0c;数据结构&#xff09;2024ccpc长春邀请赛 D Parallel Lines&#xff08;随机化&#xff09;2024ccpc长春邀请赛 E…...

Python爬虫:BeautifulSoup的基本使用方法!

1.简介 Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析“标签树”等功能。它是一个工具箱&#xff0c;通过解析文档为用户提供需要抓取的数据&#xff0c;因为简单&#xff0c;所以不需要多少代码就可以写出一个完整的应用程序。 Beautiful Soup…...

【自监督学习】DINO in ICCV 2021

一、引言 论文&#xff1a; DINO: Emerging Properties in Self-Supervised Vision Transformers 作者&#xff1a; Facebook AI Research 代码&#xff1a; DINO 特点&#xff1a; 对于一张图片&#xff0c;该方法首先进行全局和局部的裁剪与增强并分别送入教师和学生网络&am…...

使用simulink进行esp32开发,进行串口收发数据需要注意的地方,为什么收发不成功

1&#xff0c;主要是因为simulink里的配置文件配置的波特率和串口接受软件配置的波特不一致导致的 2&#xff0c;主要有以下三个界面 a.配置文件 b.模型 模型直接选择使用的是那组串口就行了&#xff0c;一般情况下我们收发使用同一组就可以&#xff0c;这样收发模块填写的端…...

改进遗传算法求解分布式柔性作业车间调度问题 Matlab代码 考虑多工厂约束,以最小化最大完工...

改进遗传算法求解分布式柔性作业车间调度问题 Matlab代码 考虑多工厂约束&#xff0c;以最小化最大完工时间为目标函数&#xff0c;使用ipox、ux两种交叉方式&#xff0c;改进G-L-R初始化机制提升初始种群质量&#xff0c;使用变邻域搜索机制对空间进行局部搜索 更换关键工厂中…...

一天一个开源项目(第62篇):lark-cli - 飞书/Lark 官方 CLI 与 AI Agent Skills

引言 “Built for humans and AI Agents.” 这是「一天一个开源项目」系列的第 62 篇文章。今天介绍的项目是 lark-cli&#xff08;GitHub&#xff09;。 需要在终端或 AI 工作流里操作飞书/Lark&#xff1f;lark-cli 是 larksuite 团队维护的官方 CLI&#xff1a;11 个业务域…...

FDTD复现Science正刊:二次谐波产生的奇妙之旅

FDTD复现Science正刊&#xff0c;二次谐波产生 嘿&#xff0c;大家好&#xff01;今天来聊聊用FDTD方法复现Science正刊中二次谐波产生的相关研究&#xff0c;这可是个超有趣的领域。 什么是二次谐波产生&#xff1f; 二次谐波产生&#xff08;Second Harmonic Generation&a…...

如何一次删除iPad上的多个应用程序? - 5 种有效方法

随着时间的推移&#xff0c;您的 iPad 可能会积累许多不必要的应用程序&#xff0c;导致存储空间不足并影响设备性能。因此&#xff0c;最好的方法是删除这些应用程序。然而&#xff0c;逐个删除它们可能很耗时&#xff1b;一次性删除多个应用程序可以更有效地释放空间并提高设…...

Claude Code教程(四)| Codex 配置(插件安装)

Claude Code教程&#xff08;四&#xff09;| Codex 配置&#xff08;插件安装&#xff09;一、核心定位&#xff08;一句话看懂&#xff09;二、前置准备&#xff08;必做&#xff09;2.1 核心环境要求&#xff08;极简&#xff09;2.2 关键说明&#xff08;重要&#xff09;三…...

Obsidian插件翻译终极指南:5分钟让所有插件说你的母语

Obsidian插件翻译终极指南&#xff1a;5分钟让所有插件说你的母语 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 你是否曾经因为喜欢的Obsidian插件只有英文界面而感到困扰&#xff1f;或者因为语言障碍而无法充分发挥插…...

mysql进阶--锁

锁的概述: 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问…...

替代CM108|替代CM108B|替代HS100|SSS1629代理商|中文说明书|台湾鑫创

SSS1623,SSS1629全面兼容与替代台湾骅讯c-mediaCM108/CM108B/CM108AH/CM118B/CM119/CM119A/HS100/CM6120/CM6317A/CM6400/CM6200等型号, 全面兼容与替代台湾创舰Isoft IS817/IS821/IS828/IS820/IS807等型号,完美替代市面上所有主流USB耳机IC,USB喇叭IC, USB音箱IC, USB游戏耳机…...

GBase 8c 表空间规划和对象迁移

GBase 8c 表空间规划和对象迁移 我最近看 GBase 8c 资料时&#xff0c;越来越强烈的一个感觉是&#xff1a;很多现场不是不会建表空间&#xff0c;而是把表空间用得太晚、太散、太随意。 真正落到现场时&#xff0c;最常见的现象通常不是“不会执行 CREATE TABLESPACE”&#x…...

从仿真到上板:手把手教你用Vivado搭建一个“永不停机”的FFT信号处理链路(附Testbench)

从仿真到上板&#xff1a;构建高可靠FFT信号处理系统的全流程实战 在数字信号处理领域&#xff0c;快速傅里叶变换&#xff08;FFT&#xff09;作为频谱分析的核心算法&#xff0c;其硬件实现一直是FPGA工程师的必备技能。本文将带您从仿真环境搭建开始&#xff0c;逐步完成一…...