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 ...
随机推荐
- java 常用jar包方法
1.Mapper3 常用接口 https://blog.csdn.net/fangwenzheng88/article/details/78713091 2.分页 pageHelper
- sqlalchemy orm 层面删除数据注意
#encoding: utf-8 from sqlalchemy import create_engine,Column,Integer,String,Float,func,and_,or_,Text ...
- MYSQL—第二部分(Linux版本的安装和数据表的操作)
Linux版本的安装(过于简单了) 安装: ? 1 yum install mysql-server 服务端启动 ? 1 mysql.server start 客户端连接 ? 1 2 3 4 5 6 ...
- python简单验证码识别
在学习python通过接口自动登录网站时,用户名密码.cookies.headers都好解决但是在碰到验证码这个时就有点棘手了:于是通过网上看贴,看官网完成了对简单验证码的识别,如果是复杂的请看大神的 ...
- CentOS7安装SVN1.9.12
检查卸载原有的svn svn --version # 检查是否原有svn yum remove svn # 卸载原有svn 安装依赖: apr-1.6.5 mkdir /opt/software/sv ...
- Codeforces 1190A. Tokitsukaze and Discard Items
传送门 显然从左到右考虑每个要删除的数 维护一个 $cnt$ 表示之前已经删除了 $cnt$ 个数,那么当前所有要删除数的实际位置就要减去 $cnt$ 直接暴力枚举哪些数在最左边一个块然后一起删除 每 ...
- 使用Jsoup爬取网站图片
package com.test.pic.crawler; import java.io.File; import java.io.FileOutputStream; import java.io.I ...
- Hadoop学习之 HIVE 多用户模式安装
一.启动hadoop 集群 1.启动zookeeper 集群 zkServer.sh start 2.在master.hadoop 机器上 ./start-all.sh 由于 start-all命 ...
- PHP--API
PHP所有能力都是函数,内置1000多个函数,不是每一个函数都默认直接可以使用,有一些需要安装或者启用额外的“插件”扩展. 1,获取字符串长度 <?php $str='hello'; echo ...
- docker 网络 实现
最近在学习docker网络相关的知识,关于网络这块儿记下来,以便review dokcer安装完成之后默认提供三种网络 bridge host none docker默认使用bridge brid ...