qt5--列表控件QListWidget

需要 #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的更多相关文章
- 列表控件QListWidget
列表控件可以让我们以列表形式呈现内容,是界面更加有序美观.QListWidget列表控件应当与QListWidgetItem一起使用,后者作为项被添加入列表控件中,也就是说列表控件中的每一项都是一个Q ...
- QListWidget列表控件:当鼠标选中某行时,系统会自动设置选中的行的行号,用currentRow()返回回来,没有setCheck或setSelect类似函数
列表控件的设计思路: 只有QListWidgetItem自己能改变自己的状态(如checked,selected,颜色等)状态,QListWidget是无法改变其项的状态的. 列表控件是被动接受子项的 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
说说WebForm: 数据列表控件: WebForm 下的列表绑定控件基本就是GridView.DataList.Repeater:当然还有其它DropDownList.ListBox等. 它们的共同 ...
- WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...
- Flex 列表控件中的操作
主要操作包括:显示提示,使用图标,编辑列表条目中数据. 1.使用数据提示: 当鼠标停留在条目上时,可以显示该条目的相关数据提示. 当利用滚动条时,可以显示滚动条的相关提示. 在列表控件中使用showD ...
- VC++ 列表控件的使用方法
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值.MFC中使用CListCtrl类来封装列表控件的各种操作. 通过调用BOOL Create( DWORD ...
- 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
实际使用MVVM进行WPF开发的时候,可能会用到列表控件中每行一个编辑或删除按钮,这时直接去绑定,发现无法响应: <DataGridTemplateColumn Header="操作& ...
- Android自定义标签列表控件LabelsView解析
版权声明:本文为博主原创文章,未经博主允许不得转载. 无论是在移动端的App,还是在前端的网页,我们经常会看到下面这种标签的列表效果: 标签从左到右摆放,一行显示不下时自动换行.这样的效果用And ...
随机推荐
- luoguP1379-八数码难题(双向bfs)
题目链接:https://www.luogu.org/problemnew/show/P1379 题意:用字符串表示八数码,求根据给定八数码得到末状态“123804765”最少的步数. 思路:这题很方 ...
- Configure脚本支持说明
在Linux上安装Nginx需要执行Configure脚本,该脚本需要做一些参数说明: 选项 说明 --prefix=<path> 指定Nginx软件的安装路径,若不指定默认安装在/usr ...
- Docker守护进程
Docker安装完成之后, 需要确定Docker的守护进程是否已经运行. Docker是使用root 权限运行他的程序,进而可以处理普通用户无法完成的操作(比如挂载文件系统). docker程序是Do ...
- Maven简单项目及命令使用
项目结构如下 HelloWorld.java package pak1; public class HelloWorld { public String sayHello(){ return &quo ...
- vue : 无法加载文件 C:\Users\lihongjie\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 htt ps:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + vue init webpack vue_p
以管理员方式打开powershell 运行命令:set-ExecutionPolicy RemoteSigned 出现: 执行策略更改执行策略可帮助你防止执行不信任的脚本.更改执行策略可能会产生安全风 ...
- JS中的继承(下)
JS中的继承(下) 在上一篇 JS中的继承(上) 我们介绍了3种比较常用的js继承方法,如果你没看过,那么建议你先看一下,因为接下来要写的内容, 是建立在此基础上的.另外本文作为我个人的读书笔记,才疏 ...
- Charles学习(四)之使用Map local代理本地静态资源以及配置移动端代理在真机上调试iOS和Android客户端
前言 问题一:我们在App内嵌H5开发的过程中,肯定会遇到一个问题就是我不想在chrome的控制台中调试也不想在模拟器中调试,我想要在真机上调试,那么如何解决这个问题呢? 问题二:我们期待调试时达到的 ...
- ABCD 谁是小偷
题目: 警察局抓了a,b,c,d 4名偷窃嫌疑犯,其中只有一人是小偷.审问中,a说:“我不是小偷.”b说:“c是小偷.”c说:“小偷肯定是d.”d说:“c在胡说.” 现在已经知道这四人中有三人说的是真 ...
- mybatis字符#与字符$的区别
问题:使用in查询查询出一批数据,in查询的参数是字符串拼接的.调试过程中,把mybatis输出的sql复制到navicat中,在控制台将sql的参数也复制出来,替换到sql的字符 '?' 的位置,执 ...
- java常用的加密技术
详见:https://blog.csdn.net/it_beecoder/article/details/71480770 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以 ...