需要   #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

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. VMware Workstation 15 Pro简化安装Kali Linux 2019.2

    记录下简单安装的步骤

  2. 在Ubuntu上安装Spark

    1.下载spark2.4.3 使用用户的hadoop的版本,解压并放到/usr/local下并改名为spark目录 2.设置spark目录为本用户所有 3.设置环境变量 (1)#~/.bashrc e ...

  3. 3的倍数 或运算构造x(牛客第四场)-- triples I

    题意: 给你一个数,希望你能用最少的3的倍数或运算成它,让你输出答案. 思路: 进制%3有规律,1.2.4.8.16%3是1.2.1.2.1 ... 利用这一点分情况取一些位合成一些数就是答案了. # ...

  4. python-day30(正式学习)

    单例模式 什么是单例模式 单例模式:基于某种方法实例化多次得到实例是同一个 为什么用单例模式 当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例 用类方法来实现 ...

  5. vue项目中微信jssdk在ios签名失败

    一.问题描述 1. vue项目中微信jssdk签名时,在安卓和ios是有差异的,签名时使用的url=window.location.href.split('#')[0],此时在安卓没问题,在ios会导 ...

  6. Codeforces 1190D. Tokitsukaze and Strange Rectangle

    传送门 注意到矩形往上是无限的,考虑把点按 $y$ 从大到小考虑 对于枚举到高度为 $h$ 的点,设当前高度大于等于 $h$ 的点的所有点的不同的 $x$ 坐标数量为 $cnt$ 那么对于这一层高度 ...

  7. Codeforces 1190C. Tokitsukaze and Duel

    传送门 注意到后手可以模仿先手的操作,那么如果一回合之内没法决定胜负则一定 $\text{once again!}$ 考虑如何判断一回合内能否决定胜负 首先如果最左边和最右的 $0$ 或 $1$ 距离 ...

  8. CSP/NOIP 2019 游记

    Day0 打牌 Day1 \(T1\) 没开\(ull\), 不知道有几分 \(T2\) \(N^2\)暴力+链, 没搞出树上做法, \(70\)分 \(T3\) 标准\(10\)分( 感觉今年省一稳 ...

  9. 面试常考的js题目(一)

    1.找出dom文档中某个元素下面的所有文字(面试写的一塌糊涂,回来重写的) 1.返回回数组形式的 function getText(ele) { if (ele.nodeType === 3) { r ...

  10. linux下vim常用命令 (更新中...)

    1.注释多行 1). 首先按esc进入命令行模式下,按下Ctrl + v,进入VISUAL BLOCK模式; 2). 在行首使用上下键选择需要注释的多行; 3). 按下键盘(大写)“I”键,进入插入模 ...