当前位置: 首页 > 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;这样收发模块填写的端…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...