向列表中添加数据:共有三种方式

1、void QListWidget::addItem(const QString & label):直接向列表中添加文本信息;

    QListWidget *listWidget = new QListWidget(this);listWidget->addItem("床前明月光");listWidget->addItem("疑是地上霜");listWidget->addItem("举头望明月");listWidget->addItem("低头思故乡");listWidget->setGeometry(20, 10, 100, 100);

效果:

2、void QListWidget::addItem(QListWidgetItem * item):向列表中添加  QListWidgetItem 对象;

    // 创建一个列表对象QListWidget *listWidget = new QListWidget(this);listWidget->setGeometry(10, 10, this->width() - 20, this->height() - 20);// 创建一个列表项对象QListWidgetItem *item = new QListWidgetItem(listWidget);item->setText("床前明月光");                 // 设置文本信息item->setBackgroundColor(QColor(Qt::red));  // 设置背景颜色QBrush brush;brush.setColor(QColor(Qt::green));  // 设置画刷的颜色brush.setStyle(Qt::CrossPattern);   // 设置画刷的样式brush.setTextureImage(QImage(":/Image/Luffy.png")); // 设置画刷的背景图片item->setBackground(brush);         // 为列表项设置背景画刷// 注意:setBackgroundColor 和 setBackground 都可以用来设置背景,后设置的会覆盖掉先设置的;item->setCheckState(Qt::Checked);   // 设置默认为选中状态(列表项前面会自动添加一个 checkbox)item->setFont(QFont("宋体", 25));    // 设置字体// 注意:setForeground 和 setTextColor 都可以用来设置前景,后设置的会覆盖掉先设置的item->setForeground(QBrush(QColor(Qt::white), Qt::CrossPattern)); // 设置前景画刷item->setTextColor(QColor(Qt::blue));   // 设置文本颜色item->setTextAlignment(Qt::AlignCenter); // 设置居中对齐item->setHidden(false); // 设置是否隐藏(如果是 true ,就会隐藏)item->setIcon(QIcon(":/Image/OnePiece.png"));  // 设置图标item->setSelected(true);    // 设置默认选中该条列表项// 设置列表项的大小(设置宽度好像没有效果,只有高度起作用)item->setSizeHint(QSize(20, 50)); // 将列表项添加到列表中listWidget->addItem(item);

效果:

3、void QListWidget::addItems(const QStringList & labels):向列表中添加字符串集合

    // 创建一个列表对象QListWidget *listWidget = new QListWidget(this);listWidget->setGeometry(10, 10, this->width() - 20, this->height() - 20);// 创建一个字符串集合QStringList list;list << "床前明月光" << "疑是地上霜" << "举头望明月" << "低头思故乡" ;// 将集合数据添加到列表中listWidget->addItems(list);

效果:


向列表中插入数据:也有三种方式

    // 创建一个列表对象QListWidget *listWidget = new QListWidget(this);listWidget->setGeometry(10, 10, this->width() - 20, this->height() - 20);// 创建一个字体对象    QFont font;font.setBold(true);font.setFamily("宋体");font.setPointSize(22);// 创建一个列表项对象QListWidgetItem *item = new QListWidgetItem(listWidget);item->setText("静夜思");item->setFont(font);item->setTextAlignment(Qt::AlignCenter);QListWidgetItem *item2 = new QListWidgetItem(listWidget);item2->setText("李白");item2->setFont(QFont("宋体", 18));item2->setTextAlignment(Qt::AlignCenter);// 向列表中插入数据listWidget->insertItem(0, item);listWidget->insertItem(1, item2);listWidget->insertItems(2, QStringList() << "床前明月光," << "疑是地上霜;" << "举头望明月," << "低头思故乡.");listWidget->setFont(QFont("宋体", 25)); // 设置列表字体listWidget->item(2)->setTextAlignment(Qt::AlignCenter); // 设置文本居中listWidget->item(3)->setTextAlignment(Qt::AlignCenter);listWidget->item(4)->setTextAlignment(Qt::AlignCenter);listWidget->item(5)->setTextAlignment(Qt::AlignCenter);// listWidget->count():获取列表项的数量for (int i = 0; i < listWidget->count(); i++){// 背景色隔行改变if (i % 2 == 0){listWidget->item(i)->setBackgroundColor(QColor(241, 214, 231));}else if (i % 2 == 1){listWidget->item(i)->setBackgroundColor(QColor(82, 247, 247));}}

效果:


删除当前选中的项:

    // 点击列表时,删除当前选中的项connect(listWidget, &QListWidget::clicked, [=](){// 获取当前选中的行qDebug() << listWidget->currentRow();// 获取当前选中的项QListWidgetItem *item = listWidget->currentItem();qDebug() << item->text().toUtf8().data();if (QMessageBox::question(this, "系统提示", "是否删除当前项?") == QMessageBox::Yes){// takeItem():删除列表中的指定行,并返回该行的 QListWidgetItem 对象;否则返回 0;// 但是该方法从列表中删除的项不会由 Qt 管理,需要手动删除。QListWidgetItem *delItem = listWidget->takeItem(listWidget->currentRow());listWidget->removeItemWidget(delItem);}qDebug() << listWidget->count();});

双击当前选中的项,进行修改:

    // 双击列表时,可以对当前选中的项进行编辑connect(listWidget, &QListWidget::doubleClicked, [=](){// 获取当前选中的行qDebug() << listWidget->currentRow();// 获取当前选中的项QListWidgetItem *item = listWidget->currentItem();qDebug() << item->text().toUtf8().data();// 设置 item 允许编辑item->setFlags(item->flags() | Qt::ItemIsEditable);});// 当列表项发生改变时,触发的信号(参数为当前发生更改的项)connect(listWidget, &QListWidget::itemChanged, [=](QListWidgetItem * item){qDebug() << "修改后的值:" << item->text().toUtf8().data();});

Qt学习笔记(十八):QListWidget 的常用方法相关推荐

  1. QT学习笔记(八):顺序容器和关联容器

    QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...

  2. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...

  3. windows内核开发学习笔记十八:IRP 处理的标准模式

    windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...

  4. Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件

    Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...

  5. qt学习笔记(八)之深入QSqlQuery

    在上一节中,我们直接调用QSqlQuery:exec()对数据库进行增删改查等简单操作. 在项目开发中,为了实现系统的低耦合,我们就必须封装出一个数据库功能模块. 一.prepare() 首先创建一个 ...

  6. 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形

    <MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...

  7. 【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现

    (注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 模板缓冲区(Stencil Buffe ...

  8. three.js学习笔记(十八)——调整材质

    介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...

  9. 【theano-windows】学习笔记十八——混合蒙特卡洛采样

    #前言 继续之前的Theano学习,本次主要学习混合蒙特卡洛(Hybrid Monte-Carlo Sampling)采样算法. 国际惯例,参考网址 Hybrid Monte-Carlo Sampli ...

最新文章

  1. CV01-语义分割笔记和两个模型VGG ResNet的笔记
  2. 如何从路由器中查找ADSL帐号 [2007年4月13日]
  3. pythonurllib模块-Python3学习笔记(urllib模块的使用)
  4. Android Activity形象描述
  5. 文巾解题 1765. 地图中的最高点
  6. HDU 5115 Dire Wolf
  7. postgresql 客户端_一款功能强大的数据库客户端:DataGrip
  8. python 函数嵌套 报错_《Python》 函数嵌套、闭包和迭代器
  9. apache poi使用例_4.Apache POI使用详解
  10. 打造最舒适的webview调试环境 1
  11. 信息机房服务器搬迁,医院信息机房搬迁的实施与经验总结
  12. 三菱FX5U,机床X轴Y轴工作台定位控制程序 使用三菱J4-A系列伺服驱动器绝对位置系统,程序大小27000多步
  13. 谷歌浏览器突然不能翻译了怎么解决?
  14. python图片批量转换成灰度图像
  15. groovy环境安装
  16. MySQL学习笔记(二)
  17. 计算机毕业设计SSM高校第二课堂管理系统【附源码数据库】
  18. matlab 轴系校中,轴系校中简介.ppt
  19. 1.swift 常量和变量
  20. 【学习周报】深度学习笔记第六周

热门文章

  1. 持续更新:免费的IT学习资源分享
  2. Python实现公元纪年到干支纪年的转换
  3. Educoder--Java面向对象(第八章) - 文件类
  4. 婚恋交友app源码,搭建一个流媒体服务
  5. 微信正拉低中国社会的整体智商
  6. TouchDesigner使用之一-下载安装
  7. 高等数学(空间解析几何)
  8. linux下调节GPU的功率限制
  9. 计算机体系结构的一些总结
  10. 验票证明怎么打印_刚买来的针式 打印机怎么测验打印发票