Qt控件---多元素类

文章目录

  • QListWidget(纵向列表)
    • 使用
  • QTableWidget(表格)
    • 使用
  • QTreeWidget(树形控件)
    • QTreeWidgetItem
    • 使用

QListWidget(纵向列表)

QListWidget里的每个元素都为 QListWidgetItem 类型的

属性说明
currentRow当前是第几行被选中
count一共有多少行
sortingEnabled是否允许排序
isWrapping是否允许换行
itemAlignment元素的对齐方式
selectRectVisible被选中元素矩形是否可见
spacing元素之间的间隔
方法说明
addItem(const QString& label) addItem(QListWidgetItem *item)添加元素
currentItem()返回当前选中的元素
setCurrentItem(QListWidgetItem* item)设置选中元素
setCurrentRow(int row)设置选中第几行的元素
insertItem(const QString& label, int row) insertItem(QListWidgetItem *item, int row)在指定位置插入元素
item(int row)返回表示 row 行的元素
takeItem(int row)删除指定行的元素,并返回这个被删除的元素
信号说明
currentItemChanged(QListWidgetItem* current, QListWidgetItem* old)选中不同元素时触发,参数为当前选中的元素和之前选中的元素
currentRowChanged(int)选中不同元素时触发,参数为当前选中元素的行数
itemClicked(QListWidgetItem* item)点击某个元素时触发
itemDoubleClicked(QListWidgetItem* item)双击某个元素时触发
itemEntered(QListWidgetItem* item)鼠标进入元素时触发

使用

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化列表的值ui->listWidget->addItem("C++");ui->listWidget->addItem("Java");ui->listWidget->addItem("Qt");
}// 新增按钮点击触发事件
void Widget::on_pushButton_clicked()
{// 获取输入框内容const QString &text = ui->lineEdit->text();// 判空if(text.isEmpty()) return;// 插入列表ui->listWidget->addItem(text);
}// 删除按钮点击触发事件
void Widget::on_pushButton_2_clicked()
{// 获取列表中当前选中元素的行数int row = ui->listWidget->currentRow();// 删除ui->listWidget->takeItem(row);
}

imgimg

QTableWidget(表格)

QTableWidget中的每一个元素都是 QTableWidgetItem 类型的

方法说明
item(int row, int column)根据行列获取指定内容
setItem(int row, int column, QTableWidget*)根据行列设置元素
currentItem()返回选中的元素
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)删除第 colimn 列
setHorizontalHeaderItem(int column, QTableWidget*)设置指定列的表头
setVerticalHeaderItem(int row, QTableWidget*)设置指定行的表头
信号说明
cellClicked(int row, int column)点击单元格触发
cellDoubleClicked(int row, int column)双击单元格触发
cellEntered(int row, int column)鼠标进入单元格触发
currentCellChanged(int row, int column, int previousRow, int previousColumn)选中不同单元格触发

使用

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->tableWidget->insertRow(0); // 设置一个行// 设置三个列ui->tableWidget->insertColumn(0);ui->tableWidget->insertColumn(1);ui->tableWidget->insertColumn(2);// 设置列名ui->tableWidget->setHorizontalHeaderItem(0, new QTableWidgetItem("学号"));ui->tableWidget->setHorizontalHeaderItem(1, new QTableWidgetItem("姓名"));ui->tableWidget->setHorizontalHeaderItem(2, new QTableWidgetItem("性别"));// 设置初始值ui->tableWidget->setItem(0, 0, new QTableWidgetItem("0001"));ui->tableWidget->setItem(0, 1, new QTableWidgetItem("张三"));ui->tableWidget->setItem(0, 2, new QTableWidgetItem("男"));
}// 新增一行按钮
void Widget::on_pushButton_clicked()
{// 获取当前行数int row = ui->tableWidget->rowCount();// 插入新行ui->tableWidget->insertRow(row);
}// 新增一列按钮
void Widget::on_pushButton_3_clicked()
{// 获取当前列数int lie = ui->tableWidget->columnCount();// 插入新列ui->tableWidget->insertColumn(lie);// 设置列名const QString &text = ui->lineEdit->text();ui->tableWidget->setHorizontalHeaderItem(lie, new QTableWidgetItem(text));
}// 删除选中行
void Widget::on_pushButton_2_clicked()
{// 获取当前行号int row = ui->tableWidget->currentRow();// 删除行ui->tableWidget->removeRow(row);
}// 删除选中列
void Widget::on_pushButton_4_clicked()
{// 获取当前列号int lie = ui->tableWidget->currentColumn();// 删除列ui->tableWidget->removeColumn(lie);
}

img

img

QTreeWidget(树形控件)

QTreeWidget里的每个元素都是 QTreeWidgetItem 类型的

方法说明
clear清空所有子节点
addTopLevelItem(QTreeWidgetItem* item)新增顶层节点
topLevelItem(int index)获取指定下标的顶层节点
topLevelItemCount()获取顶层节点个数
indexOfTopLevelItem(QTreeWidgetItem* item)查询指定节点是顶层节点中的下标
takeTopLevelItem(int index)删除指定的顶层节点,并返回删除的元素
currentItem()获取当前选中的节点
setCurrentItem(QTreeWidgetItem* item)选中指定节点
setExpanded(bool)展开/关闭节点
setHeaderLabel(const QString& text)设置头字段名称
信号说明
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

方法说明
addChild(QTreeWidgetItem* child)新增子节点
childCount()子节点个数
child(int index)获取指定下标的子节点
takeChild(int index)删除对应下标的子节点
removeChild(QTreeWidgetItem* child)删除对应的子节点
parent()获取该元素的父节点

使用

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 初始化QTreeWidgetItem *item = new QTreeWidgetItem();item->setText(0, "高校");ui->treeWidget->addTopLevelItem(item);
}// 添加到顶层元素
void Widget::on_pushButton_clicked()
{// 获取输入框内容const QString &text = ui->lineEdit->text();if(text.isEmpty()) return;// 添加到顶层节点QTreeWidgetItem *item = new QTreeWidgetItem();item->setText(0, text);ui->treeWidget->addTopLevelItem(item);
}// 添加到选中元素
void Widget::on_pushButton_2_clicked()
{// 获取输入框内容const QString &text = ui->lineEdit->text();if(text.isEmpty()) return;// 获取当前选中的节点QTreeWidgetItem *cur = ui->treeWidget->currentItem();if(cur == NULL) return;// 构造新的itemQTreeWidgetItem *item = new QTreeWidgetItem();item->setText(0, text);// 添加到选中节点cur->addChild(item);// 展开父节点cur->setExpanded(true);
}// 删除选中元素
void Widget::on_pushButton_3_clicked()
{// 获取当前选中的节点QTreeWidgetItem *cur = ui->treeWidget->currentItem();if(cur == NULL) return;// 获取当前节点的父节点QTreeWidgetItem* parent = cur->parent();// 当前节点是顶层节点if(parent == NULL){int index = ui->treeWidget->indexOfTopLevelItem(cur);ui->treeWidget->takeTopLevelItem(index);}else{// 不是顶层节点parent->removeChild(cur);}
}

img

img

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[计算机效率] 时间记录工具:ManicTime

3.24 时间记录工具:ManicTime ManicTime是一款数据收集软件,主要用于记录电脑上各种软件使用所花费的时间以及电脑闲置的时间。用户还可以定制记录某一时间段内的系统活动。 数据收集:ManicTime能够静默运行于后台,自动跟踪并收…

[MySQL]数据库原理8——喵喵期末不挂科

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

解读《算者生存:商业分析的方法与实践》:构建企业经营分析框架的必备指南

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

【Qt 学习笔记】Qt常用控件 | 按钮类控件QPushButton的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 按钮类控件QPushButton的使用及说明 文章编号&#xff1…

Linux数据库自动备份 - 定时任务发到百度云盘、坚果云、邮箱附件

前言 1. 坚果云的webdav云盘最好! (免费账号每月1G上传流量) 2. 不建议数据库备份文件发送到SMTP邮箱,因为对方服务器非常容易当做垃圾邮件处理,而且发信的SMTP账号会被封禁(实测163发到QQ邮箱被封&…

new Ammo.btSoftBodyHelpers() 是 Ammo.js 中的一个构造函数,用于创建软体物体的辅助对象,提供了一些方法来创建软体物体

demo案例 new Ammo.btSoftBodyHelpers() 是 Ammo.js 中的一个构造函数,用于创建软体物体的辅助对象,提供了一些方法来创建软体物体。以下是它的一些重要信息: 入参:通常不需要传入参数。 出参:创建的新的软体辅助对…

SENet模型原理及代码介绍

一.模型简介: SENet的全称叫Squeeze-and-Excitation Networks(挤压-激励网络,简称SENet),于2017年提出,并拿下了当年的ImageNet分类比赛的冠军。ResNet是2015年ImageNet的冠军,2016年ResNeXt&am…

护眼台灯怎么选看哪些指标?细数五款性价比最高的护眼灯

在日常生活中,越来越多的人开始重视眼部保护。除了日常用眼要合理、阅读写作姿势要正确外,良好的用眼环境同样重要。很多人在写作、学习时都会开启台灯来补充光源,优化用眼环境。但如果台灯不护眼,反而可能加剧眼部疲劳、近视等问…

【服务器部署篇】Linux下Jenkins安装和配置

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

Java反序列化Commons-Collections-CC1链

环境搭建 JDK8u71以下,这个漏洞已经被修复了,这个JDK的以上版本都修复了漏洞 JDK8u65 下载地址 https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html这个时候来到 pom.xml 配置Maven依赖下载CommonsCollections3.2.…

【HTML】制作一个简单的实时字体时钟

目录 前言 HTML部分 CSS部分 JS部分 效果图 总结 前言 无需多言,本文将详细介绍一段HTML代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,两个文件夹,其中HTML的文件名改为[index.html]&am…