需要   #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(,); QPushButton* btn=new QPushButton("按钮",this);
btn->move(,);
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(,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(); //清空 }

实例下载地址:https://share.weiyun.com/5VyRcJL

最新文章

  1. weblogic jetty debug 远程
  2. js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前
  3. inline-block元素之间出现间隙
  4. 开源点评:Protocol Buffers介绍
  5. ASP.NET - TreeView
  6. 用JAVA捕获屏幕、屏幕录像、播放
  7. Ansible 系列之 Ad-Hoc介绍及使用
  8. Windows10 VS2015下分别编译libevent 32位和64位库
  9. MyBatis进阶(一)运行原理
  10. RC terms.
  11. 图形化SVN管理搭建 subversion edge自行修改密码
  12. ListView中的item中的Onclick事件的优化
  13. fedora添加ntfs文件系统支持
  14. 谈 JavaScript 中的强制类型转换 (1. 基础篇)
  15. bash shell(5):if,else,while大小比较
  16. idea引入svn
  17. js给节点添加或删除类名
  18. 《ActiveMQ in Action》例子
  19. 【整理】Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来或打印出来却是乱码
  20. Java-01背包问题-动态规划-递归和非递归实现

热门文章

  1. 【AMAD】dogpile.cache -- 一个Python缓存API,提供一套通用的接口来适配不同的缓存后端
  2. Leetcode之动态规划(DP)专题-877. 石子游戏(Stone Game)
  3. 论文翻译:LP-3DCNN: Unveiling Local Phase in 3D Convolutional Neural Networks
  4. 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念
  5. [xpath] 定位中starts-with、contains和text()的用法
  6. 从入门到自闭之Python入门
  7. HTML(下)
  8. Windows Runtime (RT)
  9. python基础之函数当中的装饰器
  10. Codeforces 1196F. K-th Path