需要   #include <QListWidget>            #include <QListWidgetItem>

列表控件可以让我们以列表形式呈现内容,是界面更加有序美观。QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表控件中,也就是说列表控件中的每一项都是一个QListWidgetItem。这也是为什么我们说QListWidget是一个基于项(Item-based)的控件了

  1. #include "win.h"
  2. #include <QListWidget>
  3.  
  4. #include <QDebug>
  5. #include <QPushButton>
  6.  
  7. Win::Win(QWidget *parent)
  8. : QWidget(parent)
  9. {
  10. this->resize(,);
  11.  
  12. QPushButton* btn=new QPushButton("按钮",this);
  13. btn->move(,);
  14. connect(btn,&QPushButton::clicked,this,&Win::A);
  15.  
  16. QListWidgetItem* lwi1=new QListWidgetItem("锄禾日当午,");//创建列表项目
  17. lwi1->setTextAlignment(Qt::AlignHCenter);//设置文本对齐方式
  18. //Qt::AlignHCenter 水平居中
  19. //Qt::AlignLeft
  20. //Qt::AlignRight
  21. //Qt::AlignVCenter 垂直居中
  22. //Qt::AlignBottom
  23. //Qt::AlignTop
  24.  
  25. //QListWidget* lw=new QListWidget(this);//创建列表控件
  26. lw=new QListWidget(this);//创建列表控件
  27. //lw->setViewMode(QListView::IconMode);//设置显示模式为图标模式--项目横放
  28. lw->setViewMode(QListView::ListMode);//设置显示模式为列表模式--竖放
  29. lw->addItem(lwi1);//给列表控件添加一个项目
  30.  
  31. QStringList list;
  32. list<<"汗滴禾下土。"<<"谁知盘中餐,"<<"粒粒皆辛苦。"; //给list增加项目
  33. //无法设置对齐
  34. lw->addItems(list);//给列表控件添加一些项目
  35.  
  36. QListWidgetItem* lwi2=new QListWidgetItem("李明");
  37. lw->insertItem(,lwi2);//插入项目
  38. //参数1 序号
  39. //参数2 项目
  40.  
  41. int s=lw->count(); //获取列表项的总数目
  42.  
  43. qDebug()<<s;
  44.  
  45. connect(lw,&QListWidget::itemDoubleClicked,this,&Win::B);//双击某项目时发出信号
  46. //这个信号会自动传递一个参数:被双击项目的对象地址(QListWidgetItem *item)---0x54e458d210
  47. //item->text() 获取项目文本---"粒粒皆辛苦。"
  48. connect(lw,&QListWidget::itemClicked,this,&Win::C);//单击某项目时发出信号
  49. //这个信号会自动传递一个参数:被单击项目的对象地址(QListWidgetItem *item)---0x54e458d210
  50. //item->text() 获取项目文本---"粒粒皆辛苦。"
  51.  
  52. connect(lw,&QListWidget::itemChanged,this,&Win::D);//如何触发这个信号???
  53. //我增加项目 插入项目 都没有触发???
  54. connect(lw,&QListWidget::currentItemChanged,this,&Win::E);//当前项目变化时触发信号
  55. //这个信号会自动传递二个参数:第一个当前项目的对象地址(QListWidgetItem *item)---0x54e458d210
  56. //第二个 前一项目的对象地址 注意:第一次选择时这个地址不能用item->text()提取文本,因为地址是0x0
  57. connect(lw,&QListWidget::currentRowChanged,this,&Win::F);//当前项目变化时触发信号
  58. //这个信号会自动传递一个参数(int):当前项目索引号
  59.  
  60. }
  61.  
  62. void Win::F(int currentRow){
  63. qDebug()<<"当前索引号改变了:"<<currentRow;
  64. }
  65. void Win::E(QListWidgetItem *item,QListWidgetItem *item1){
  66. qDebug()<<"当前项目改变了:"<<item->text()<<item1;
  67. }
  68. void Win::D(QListWidgetItem *item){
  69. qDebug()<<"项目改变了:"<<item->text();
  70. }
  71. void Win::C(QListWidgetItem *item){
  72. qDebug()<<"单击了列表控件:"<<item->text();
  73. }
  74. void Win::B(QListWidgetItem *item){
  75. qDebug()<<"双击了列表控件:"<<item->text();
  76. }
  77.  
  78. Win::~Win()
  79. {
  80.  
  81. }
  82.  
  83. void Win::A(){
  84. int s=lw->currentRow();//返回当前项目的索引号
  85. QListWidgetItem *item = lw->takeItem(s); //返回指定索引号项目的指针
  86. delete item; //删除指定项目
  87. lw->clear(); //清空
  88.  
  89. }

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

qt5--列表控件QListWidget的更多相关文章

  1. 列表控件QListWidget

    列表控件可以让我们以列表形式呈现内容,是界面更加有序美观.QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表控件中,也就是说列表控件中的每一项都是一个Q ...

  2. QListWidget列表控件:当鼠标选中某行时,系统会自动设置选中的行的行号,用currentRow()返回回来,没有setCheck或setSelect类似函数

    列表控件的设计思路: 只有QListWidgetItem自己能改变自己的状态(如checked,selected,颜色等)状态,QListWidget是无法改变其项的状态的. 列表控件是被动接受子项的 ...

  3. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  4. .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)

    说说WebForm: 数据列表控件: WebForm 下的列表绑定控件基本就是GridView.DataList.Repeater:当然还有其它DropDownList.ListBox等. 它们的共同 ...

  5. WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...

  6. Flex 列表控件中的操作

    主要操作包括:显示提示,使用图标,编辑列表条目中数据. 1.使用数据提示: 当鼠标停留在条目上时,可以显示该条目的相关数据提示. 当利用滚动条时,可以显示滚动条的相关提示. 在列表控件中使用showD ...

  7. VC++ 列表控件的使用方法

    列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值.MFC中使用CListCtrl类来封装列表控件的各种操作. 通过调用BOOL Create( DWORD ...

  8. 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法

    实际使用MVVM进行WPF开发的时候,可能会用到列表控件中每行一个编辑或删除按钮,这时直接去绑定,发现无法响应: <DataGridTemplateColumn Header="操作& ...

  9. Android自定义标签列表控件LabelsView解析

    版权声明:本文为博主原创文章,未经博主允许不得转载. 无论是在移动端的App,还是在前端的网页,我们经常会看到下面这种标签的列表效果:   标签从左到右摆放,一行显示不下时自动换行.这样的效果用And ...

随机推荐

  1. java 常用jar包方法

    1.Mapper3   常用接口 https://blog.csdn.net/fangwenzheng88/article/details/78713091 2.分页 pageHelper

  2. sqlalchemy orm 层面删除数据注意

    #encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Text ...

  3. MYSQL—第二部分(Linux版本的安装和数据表的操作)

    Linux版本的安装(过于简单了) 安装: ? 1 yum install mysql-server 服务端启动 ? 1 mysql.server start 客户端连接 ? 1 2 3 4 5 6 ...

  4. python简单验证码识别

    在学习python通过接口自动登录网站时,用户名密码.cookies.headers都好解决但是在碰到验证码这个时就有点棘手了:于是通过网上看贴,看官网完成了对简单验证码的识别,如果是复杂的请看大神的 ...

  5. CentOS7安装SVN1.9.12

    检查卸载原有的svn svn --version # 检查是否原有svn yum remove svn # 卸载原有svn 安装依赖: apr-1.6.5 mkdir /opt/software/sv ...

  6. Codeforces 1190A. Tokitsukaze and Discard Items

    传送门 显然从左到右考虑每个要删除的数 维护一个 $cnt$ 表示之前已经删除了 $cnt$ 个数,那么当前所有要删除数的实际位置就要减去 $cnt$ 直接暴力枚举哪些数在最左边一个块然后一起删除 每 ...

  7. 使用Jsoup爬取网站图片

    package com.test.pic.crawler; import java.io.File; import java.io.FileOutputStream; import java.io.I ...

  8. Hadoop学习之 HIVE 多用户模式安装

    一.启动hadoop 集群 1.启动zookeeper 集群   zkServer.sh start 2.在master.hadoop 机器上 ./start-all.sh 由于 start-all命 ...

  9. PHP--API

    PHP所有能力都是函数,内置1000多个函数,不是每一个函数都默认直接可以使用,有一些需要安装或者启用额外的“插件”扩展. 1,获取字符串长度 <?php $str='hello'; echo ...

  10. docker 网络 实现

    最近在学习docker网络相关的知识,关于网络这块儿记下来,以便review dokcer安装完成之后默认提供三种网络  bridge host none  docker默认使用bridge brid ...