Qt5列表控件QListWidget
列表 控件 QT5
2023-09-14 09:05:11 时间
需要 #include <QListWidget> #include <QListWidgetItem>
列表控件可以让我们以列表形式呈现内容,是界面更加有序美观。QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表控件中,也就是说列表控件中的每一项都是一个QListWidgetItem。这也是为什么我们说QListWidget是一个基于项(Item-based)的控件了。
#include "win.h"
#include <QListWidget>
#include <QDebug>
#include <QPushButton>
Win::Win(QWidget *parent)
: QWidget(parent)
{
this->resize(500,400);
QPushButton* btn=new QPushButton("按钮",this);
btn->move(400,350);
connect(btn,&QPushButton::clicked,this,&Win::A);
QListWidgetItem* lwi1=new QListWidgetItem("锄禾日当午,");//创建列表项目
lwi1->setTextAlignment(Qt::AlignHCenter);//设置文本对齐方式
//Qt::AlignHCenter 水平居中
//Qt::AlignLeft
//Qt::AlignRight
//Qt::AlignVCenter 垂直居中
//Qt::AlignBottom
//Qt::AlignTop
//QListWidget* lw=new QListWidget(this);//创建列表控件
lw=new QListWidget(this);//创建列表控件
//lw->setViewMode(QListView::IconMode);//设置显示模式为图标模式--项目横放
lw->setViewMode(QListView::ListMode);//设置显示模式为列表模式--竖放
lw->addItem(lwi1);//给列表控件添加一个项目
QStringList list;
list<<"汗滴禾下土。"<<"谁知盘中餐,"<<"粒粒皆辛苦。"; //给list增加项目
//无法设置对齐
lw->addItems(list);//给列表控件添加一些项目
QListWidgetItem* lwi2=new QListWidgetItem("李明");
lw->insertItem(2,lwi2);//插入项目
//参数1 序号
//参数2 项目
int s=lw->count(); //获取列表项的总数目
qDebug()<<s;
connect(lw,&QListWidget::itemDoubleClicked,this,&Win::B);//双击某项目时发出信号
//这个信号会自动传递一个参数:被双击项目的对象地址(QListWidgetItem *item)---0x54e458d210
//item->text() 获取项目文本---"粒粒皆辛苦。"
connect(lw,&QListWidget::itemClicked,this,&Win::C);//单击某项目时发出信号
//这个信号会自动传递一个参数:被单击项目的对象地址(QListWidgetItem *item)---0x54e458d210
//item->text() 获取项目文本---"粒粒皆辛苦。"
connect(lw,&QListWidget::itemChanged,this,&Win::D);//如何触发这个信号???
//我增加项目 插入项目 都没有触发???
connect(lw,&QListWidget::currentItemChanged,this,&Win::E);//当前项目变化时触发信号
//这个信号会自动传递二个参数:第一个当前项目的对象地址(QListWidgetItem *item)---0x54e458d210
//第二个 前一项目的对象地址 注意:第一次选择时这个地址不能用item->text()提取文本,因为地址是0x0
connect(lw,&QListWidget::currentRowChanged,this,&Win::F);//当前项目变化时触发信号
//这个信号会自动传递一个参数(int):当前项目索引号
}
void Win::F(int currentRow){
qDebug()<<"当前索引号改变了:"<<currentRow;
}
void Win::E(QListWidgetItem *item,QListWidgetItem *item1){
qDebug()<<"当前项目改变了:"<<item->text()<<item1;
}
void Win::D(QListWidgetItem *item){
qDebug()<<"项目改变了:"<<item->text();
}
void Win::C(QListWidgetItem *item){
qDebug()<<"单击了列表控件:"<<item->text();
}
void Win::B(QListWidgetItem *item){
qDebug()<<"双击了列表控件:"<<item->text();
}
Win::~Win()
{
}
void Win::A(){
int s=lw->currentRow();//返回当前项目的索引号
QListWidgetItem *item = lw->takeItem(s); //返回指定索引号项目的指针
delete item; //删除指定项目
lw->clear(); //清空
}
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- jqgrid列表显示时间控件[通俗易懂]
- 接口列表(不断更新)
- python中 列表(List)转换为字符串(Str)的方法
- Python之初识二维列表
- 我服了,整理了 40 余种图片优化工具,论图片压缩,直接甩给他这个列表
- Redis-列表类型命令操作笔记详解数据库
- 表Linux下编辑列表的简单方法(linux编辑列)
- 表MySQL查询:列表操作指南(mysql查询列)
- 探索Linux系统:完整命令列表(查看linux所有命令)
- 掌控Redis列表实现修改排序的做法(修改redis列表排序)
- Redis长列表开发者的福音(redis长列表)
- TSYS新闻列表JS调用下载
- javascript获取select下拉列表值的代码
- 基于JQuery的列表拖动排序实现代码
- Js与下拉列表处理问题解决
- jquery自定义下拉列表示例
- AndroidExpandableListView展开列表控件使用实例
- ajax初级教程之获取博文列表