Qt学习笔记(十八):QListWidget 的常用方法
向列表中添加数据:共有三种方式
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 的常用方法相关推荐
- QT学习笔记(八):顺序容器和关联容器
QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...
- windows内核开发学习笔记十八:IRP 处理的标准模式
windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...
- Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件
Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...
- qt学习笔记(八)之深入QSqlQuery
在上一节中,我们直接调用QSqlQuery:exec()对数据库进行增删改查等简单操作. 在项目开发中,为了实现系统的低耦合,我们就必须封装出一个数据库功能模块. 一.prepare() 首先创建一个 ...
- 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形
<MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...
- 【D3D11游戏编程】学习笔记十八:模板缓冲区的使用、镜子的实现
(注:[D3D11游戏编程]学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 模板缓冲区(Stencil Buffe ...
- three.js学习笔记(十八)——调整材质
介绍 到现在为止,我们都在创建新的着色器材质,但是如果我们想要修改一个Three.js内置的材质呢?或许我们对MeshStandardMaterial的处理结果感到满意,但是希望往里边添加顶点动画. ...
- 【theano-windows】学习笔记十八——混合蒙特卡洛采样
#前言 继续之前的Theano学习,本次主要学习混合蒙特卡洛(Hybrid Monte-Carlo Sampling)采样算法. 国际惯例,参考网址 Hybrid Monte-Carlo Sampli ...
最新文章
- CV01-语义分割笔记和两个模型VGG ResNet的笔记
- 如何从路由器中查找ADSL帐号 [2007年4月13日]
- pythonurllib模块-Python3学习笔记(urllib模块的使用)
- Android Activity形象描述
- 文巾解题 1765. 地图中的最高点
- HDU 5115 Dire Wolf
- postgresql 客户端_一款功能强大的数据库客户端:DataGrip
- python 函数嵌套 报错_《Python》 函数嵌套、闭包和迭代器
- apache poi使用例_4.Apache POI使用详解
- 打造最舒适的webview调试环境 1
- 信息机房服务器搬迁,医院信息机房搬迁的实施与经验总结
- 三菱FX5U,机床X轴Y轴工作台定位控制程序 使用三菱J4-A系列伺服驱动器绝对位置系统,程序大小27000多步
- 谷歌浏览器突然不能翻译了怎么解决?
- python图片批量转换成灰度图像
- groovy环境安装
- MySQL学习笔记(二)
- 计算机毕业设计SSM高校第二课堂管理系统【附源码数据库】
- matlab 轴系校中,轴系校中简介.ppt
- 1.swift 常量和变量
- 【学习周报】深度学习笔记第六周