- 博客主页:Duck Bro 博客主页
- 系列专栏:Qt 专栏
- 关注博主,后期持续更新系列文章
- 如果有错误感谢请大家批评指出,及时修改
- 感谢大家点赞👍收藏⭐评论✍
Qt常用控件 | 多元素控件 | List Widget的说明及介绍
文章编号:Qt 学习笔记 / 36
文章目录
- Qt常用控件 | 多元素控件 | List Widget的说明及介绍
- 一、QListWidget介绍
- 1. 简介
- 2. 核心属性
- 3. 核心方法
- 4. 核心信号
- 二、QListWidgetItem介绍
- 1. 简介
- 2. 核心方法
- 三、QListWidget的使用(代码示例)
- 1. 创建一个ListWidget增删列表
一、QListWidget介绍
1. 简介
QListWidget是Qt框架提供的一个用于显示列表的控件。它可以在窗口中显示一个可滚动的列表,并且每个列表项都可以是一个文本项、图像项或自定义项。
QListWidget可以用于显示一组文本项,用户可以选择列表中的一项或多项。 它还可以用于显示一组图像项,用户可以通过点击图像项进行选择或执行其他操作。用户还可以使用自定义项在列表中显示自定义的内容。
QListWidget提供了一些方便的方法和信号,可以用于添加、删除、修改和查找列表项。列表项可以通过索引或指定的text或data来获取和操作。
2. 核心属性
属性 | 说明 |
currentRow | 当前被选中的是第几行 |
count | ⼀共有多少行 |
sortingEnabled | 是否允许排序 |
isWrapping | 是否允许换行 |
itemAlignment | 元素的对齐方式 |
selectRectVisible | 被选中的元素矩形是否可见 |
spacing | 元素之间的间隔 |
3. 核心方法
方法 | 说明 |
addItem(const QString& label) addItem(QListWidgetItem *item) | 列表中添加元素. |
currentItem() | 返回 QListWidgetItem* 表示当前选中的元素 |
setCurrentItem(QListWidgetItem* item) | 设置选中哪个元素 |
setCurrentRow(int row) | 设置选中第几行的元素 |
insertItem(const QString& label, int row) insertItem(QListWidgetItem *item, int row) | 在指定的位置插入元素 |
item(int row) | 返回 QListWidgetItem* 表示第 row 行的元素 |
takeItem(int row) | 删除指定行的元素, 返回 QListWidgetItem* 表示是哪个元素被删除了 |
4. 核心信号
方法 | 说明 |
currentItemChanged(QListWidgetItem* current, QListWidgetItem* old) | 选中不同元素时会触发. 参数是当前选中的元素和之前选中的元素. |
currentRowChanged(int) | 选中不同元素时会触发. 参数是当前选中元素的行数. |
itemClicked(QListWidgetItem* item) | 点击某个元素时触发 |
itemDoubleClicked(QListWidgetItem* item) | 双击某个元素时触发 |
itemEntered(QListWidgetItem* item) | 鼠标进入元素时触发 |
二、QListWidgetItem介绍
1. 简介
QListWidgetItem这个类表示 QListWidget 中的一个元素
QListWidgetItem是Qt框架中的一个类,用于在列表视图(QListView)中显示项目。它提供了一种简单的方式来显示和操作列表视图中的每个项目。
QListWidgetItem可以包含文本、图标、提示信息和状态标志等等。可以通过设置它的属性来设置项目的相关信息。
QListWidgetItem还提供了一些方法来设置和获取项目的各种属性,如文本、图标、提示信息、状态标志等。
2. 核心方法
方法 | 说明 |
setFont | 设置字体 |
setIcon | 设置图标 |
setHidden | 设置隐藏 |
setSizeHint | 设置尺寸 |
setSelected | 设置是否选中 |
setText | 设置文本 |
setTextAlignment | 设置文本对齐方式. |
三、QListWidget的使用(代码示例)
1. 创建一个ListWidget增删列表
- 在界面中创建一个ListWidget,一个LineEdit和两个PuttonButton按钮,如下图
- 编写widget.cpp,在构造函数中添加项目
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//添加列表元素
ui->listWidget->addItem("C++");
ui->listWidget->addItem("Java");
ui->listWidget->addItem("Python");
//也可以通过以下方式添加
//在QListWidgetItem中,可以设置字体属性,设置图标,文字大小等
//ui->listWidget->addItem(new QListWidgetItem("C++"));
}
- 编写提交和删除按钮函数
void Widget::on_pushButton_Submit_clicked()
{
//获取到输入框的内容
const QString& text=ui->lineEdit->text();
//将获取到的内容加到列表中
ui->listWidget->addItem(text);
}
void Widget::on_pushButton_Delete_clicked()
{
//先获取到到选中的行数
int row = ui->listWidget->currentRow();
//然后删除选出的行数
if(row<0)
{
return;
}
//删除指定行的内容
ui->listWidget->takeItem(row);
}
- 编写ListWidget槽函数
void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
if(current != nullptr)
{
qDebug()<<"当前选中:"<< current->text();
}
if(previous != nullptr)
{
qDebug()<<"之前选中:"<< previous->text();
}
}
- 运行代码,可以新增元素, 选中元素, 删除元素