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


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

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

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

文章目录

  • [Qt常用控件 | 多元素控件 | List Widget的说明及介绍](#Qt常用控件 | 多元素控件 | List Widget的说明及介绍)

一、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,在构造函数中添加项目

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


相关推荐
c4fx11 分钟前
Delphi5利用DLL实现窗体的重用
开发语言·delphi·dll
李小星同志20 分钟前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c32 分钟前
MFC 使用细节
笔记·学习·mfc
鸽芷咕34 分钟前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
Jhxbdks44 分钟前
C语言中的一些小知识(二)
c语言·开发语言·笔记
java66666888844 分钟前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存1 小时前
源码分析:LinkedList
java·开发语言
小江湖19941 小时前
元数据保护者,Caesium压缩不丢重要信息
运维·学习·软件需求·改行学it
代码雕刻家1 小时前
数据结构-3.1.栈的基本概念
c语言·开发语言·数据结构
Fan_web1 小时前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html