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


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt常用控件 | 多元素控件 | List Widget的说明及介绍

文章编号:Qt 学习笔记 / 36


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

  1. 在界面中创建一个ListWidget,一个LineEdit和两个PuttonButton按钮,如下图
    在这里插入图片描述

  2. 编写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. 运行代码,可以新增元素, 选中元素, 删除元素
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 08:22:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 08:22:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 08:22:04       82 阅读
  4. Python语言-面向对象

    2024-05-11 08:22:04       91 阅读

热门阅读

  1. axios常用配置

    2024-05-11 08:22:04       33 阅读
  2. npm详解

    2024-05-11 08:22:04       28 阅读
  3. 【服务治理中间件】consul介绍和基本原理

    2024-05-11 08:22:04       33 阅读
  4. Express中间件(完善)

    2024-05-11 08:22:04       31 阅读
  5. VUE----数字增加,兼容小程序

    2024-05-11 08:22:04       31 阅读
  6. Android Gradle的插件

    2024-05-11 08:22:04       28 阅读
  7. sass 详解

    2024-05-11 08:22:04       40 阅读
  8. 人工智能对企业安全的影响与风险控制-内刊

    2024-05-11 08:22:04       26 阅读
  9. Oracle行锁怎么杀

    2024-05-11 08:22:04       28 阅读
  10. rviz与urdf

    2024-05-11 08:22:04       31 阅读
  11. [补题记录] StarryCoding 入门教育赛3 D.电弧陷阱

    2024-05-11 08:22:04       29 阅读
  12. 前端Vue怎么获取登录的用户名或用户id

    2024-05-11 08:22:04       35 阅读
  13. 小米poco x3 pro adbd 以root权限启动提供服务

    2024-05-11 08:22:04       25 阅读