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

news2024/9/21 0:36:11

目录

一、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:之前选中的单元格的列号。

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

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

相关文章

前端/python脚本/转换-使用天地图下载的geojson(echarts4+如果直接使用会导致坐标和其他信息不全)

解决echarts4如果直接使用天地图下载的geojson会导致坐标和其他信息不全 解决方法是使用python脚本来补全其他信息&#xff1a;center&#xff0c;level&#xff0c;adcode等内容 前提是必须有一个之前使用的json文件&#xff08;需要全一点的数据供echarts使用&#xff09; …

单端口RAM

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 参考代码 描述 题目描述&#xff1a; 设计一个单端口RAM&#xff0c;它有&#xff1a; 写接口&#xff0c;读接口&#xff0c;地址接口&#xff0c;时钟接口和复位&#xff1b;存储宽度是4位&#xff0c;深度128。…

C语言 | Leetcode C语言题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; char** summaryRanges(int* nums, int numsSize, int* returnSize) {char** ret malloc(sizeof(char*) * numsSize);*returnSize 0;int i 0;while (i < numsSize) {int low i;i;while (i < numsSize && nums[i] nums[i …

【公益案例展】亚运天穹——践行亚运理念,筑牢安全防线

‍ 安恒信息公益案例 本项目案例由安恒信息投递并参与数据猿与上海大数据联盟联合推出的 #榜样的力量# 《2024中国数据智能产业最具社会责任感企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 杭州第19届亚运会是中国第三次举办亚洲最高规格的国际综合…

C++ | Leetcode C++题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> summaryRanges(vector<int>& nums) {vector<string> ret;int i 0;int n nums.size();while (i < n) {int low i;i;while (i < n && nums[i] nums[i - 1] …

【线性表,线性表中的顺序表和链表】

目录 1、线性表的定义和基本操作1.1、线性表的定义1.2、线性表的基本操作 2、顺序表和链表的比较2.1、顺序表2.1.1、顺序表的定义和特点2.1.2、顺序表的实现&#xff08;1&#xff09;顺序表的静态分配&#xff1a;&#xff08;2&#xff09;顺序表的动态分配 2.1.3、顺序表的基…

Android 性能优化之内存优化

文章目录 Android 性能优化之内存优化内存问题内存抖动内存泄露内存溢出 检测工具Memory ProfilerMemory AnalyzerLeakCanary 内存管理机制JavaAndroid 解决内存抖动问题模拟问题代码使用Memory Profiler工具检测优化技巧 内存泄露问题模拟问题代码使用LeakCanary工具检测优化技…

【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)

一、什么是openssl&#xff1f; OpenSSL 是一个开源的软件库&#xff0c;它提供了一系列加密工具和协议&#xff0c;主要用于实现安全通信&#xff0c;如在网络上的数据传输。它支持多种加密算法&#xff0c;包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密…

论文学习_An Empirical Study of Deep Learning Models for Vulnerability Detection

1. 引言 研究背景:近年来,深度学习漏洞检测工具取得了可喜的成果。最先进的模型报告了 0.9 的 F1 分数,并且优于静态分析器。结果令人兴奋,因为深度学习可能会给软件保障带来革命性的变化。因此,IBM、谷歌和亚马逊等行业公司非常感兴趣,并投入巨资开发此类工具和数据集。…

threadx netxduo stm32f407上实现http server

这次用的是CubeIDE CubeMX 要把NX_APP的mem分配的大一些&#xff0c;在app_azure_rtos.c中&#xff0c;我给的是40*1024&#xff0c;如果给的不够&#xff0c;会导致后面无法分配pool和thread等等 需要用到filex 要在CubeMX里面勾选上&#xff0c;还要用到http_server和dhcp …

苹果手机抹机(马来西亚)操作步骤

苹果手机抹机&#xff08;马来西亚&#xff09;操作步骤 操作环境操作步骤 操作环境 苹果6s&#xff0c;没有插卡&#xff0c;就连接上了一个wifi 操作步骤

YOLOv10改进 | Conv篇 | 利用FasterBlock二次创新C2f提出一种全新的结构(全网独家首发,参数量下降70W)

一、本文介绍 本文给大家带来的改进机制是利用FasterNet的FasterBlock改进特征提取网络&#xff0c;将其用来改进ResNet网络&#xff0c;其旨在提高计算速度而不牺牲准确性&#xff0c;特别是在视觉任务中。它通过一种称为部分卷积&#xff08;PConv&#xff09;的新技术来减少…

小白的OS Copilot 产品测评

背景 通过群友介绍才知OS Copilot 。不想错过任何优秀的AI产品。随着互联网的发展和时代的进步&#xff0c;要紧跟时代&#xff0c;了解市面上的优秀的AI科技产品。 OS Copilot 产品体验评测 1&#xff09;您的角色是什么&#xff1f;开发、运维、学生&#xff1f;如果使用O…

微软推出全新的学习网站 Microsoft Learn

微软官方宣布推出全新的学习网站 Microsoft Learn&#xff0c;供开发人员学习 Microsoft 技术。 该网站包含所有 Microsoft 产品和服务(从 HoloLens 到 Azure)的技术文档。提供了超过 80 小时的学习内容&#xff0c;涉及 Azure、Dynamics 365、PowerApps、Microsoft Flow 和 Po…

杜比全景声——空间音频技术

什么是杜比&#xff1f;是否是标清、高清、超清之上的更清晰的格式&#xff1f;杜比全景声 和传统多声道立体声的差别&#xff1f;杜比全景声音频的渲染方式&#xff1f;车载平台上杜比技术的应用&#xff1f; 杜比技术的起源 杜比实验室&#xff08;Dolby Laboratories&…

谷歌内置AI部署

感谢阅读 准备工作开启功能查看下载情况安装插件效果截图网页版地址&#xff08;需进行前面的所有步骤&#xff09; 准备工作 点我下载谷歌dev版本 注意这个版本不需要卸载之前版本 开启功能 使用下载的浏览器依次导航到下面两个地方&#xff0c;然后点击enablebypass以及en…

STM32 - PWR 笔记

PWR&#xff08;Power Control&#xff09;电源控制 PWR 负责管理 STM32 内部的电源供电部分&#xff0c;可以实现 可编程电压监测器 和 低功耗模式 的功能 可编程电压监测器&#xff08;PVD&#xff09;可以监控VDD电源电压&#xff0c;当VDD下降到PVD阀值以下或上升到PVD…

arm 、stm32、linux该如何学习?有没有先后顺序,先学什么比较好?

先讲自己&#xff0c;我是从Arduino单片机入门&#xff0c;再到stm32 &#xff0c;再开发瑞萨&#xff0c;TI&#xff0c;然后学校教了51。这是一个奇怪的学习过程&#xff0c;所以当我第一次接触51单片机的时候&#xff0c;刚好我有一些资料&#xff0c;是我根据网友给的问题精…

MacOS如何切换shell类型

切换 shell 类型 如果你想在不同的 shell 之间切换&#xff0c;以探索它们的不同之处&#xff0c;或者因为你知道自己需要其中的一个或另一个&#xff0c;可以使用如下命令&#xff1a; 切换到 bash chsh -s $(which bash)切换到 zsh chsh -s $(which zsh)$()语法的作用是运…

c++ learn fourth day

2.LOL Lovers 我们可以从 1 遍历到 len−1&#xff0c;以第 &#x1d456;i 个位置为分割线&#xff0c;统计 [0,i−1] 与 [i,len−1] 的 l 和 o 的个数&#xff0c;判断是否不相等&#xff0c;如果不相等&#xff0c;输出 i&#xff0c;然后退出即可。 如果到最后一直没有输出…