• 博客主页: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来获取和操作。

【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍_qt

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增删列表

  1. 在界面中创建一个ListWidget,一个LineEdit和两个PuttonButton按钮,如下图
  2. 【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍_笔记_02

  3. 编写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++"));
}
  1. 编写提交和删除按钮函数
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);
}
  1. 编写ListWidget槽函数
void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
    if(current != nullptr)
    {
        qDebug()<<"当前选中:"<< current->text();
    }
    if(previous != nullptr)
    {
        qDebug()<<"之前选中:"<< previous->text();
    }
}
  1. 运行代码,可以新增元素, 选中元素, 删除元素