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 ...
随机推荐
- CentOS下Subversion(SVN)的快速安装与配置
如果你是一个软件开发者,你一定对Subversion不会感到陌生.Subversion是一个自由开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放 ...
- 【神经网络与深度学习】【C/C++】C++日志操作开源函数库之Google-glog
今天想给我的C++项目找一个开源的日志类,用于记录系统日志,结果浪费了半个下午的时间.从网上搜索相关资料,找到以下几个备选方案: 1.log4cplus 下载地址:http://sourceforge ...
- js ajax跨域被阻止 CORS 头缺少 'Access-Control-Allow-Origin'(转)
今天ajax请求域名的时候出现 已阻止跨源请求:同源策略禁止读取位于 http://www.zuimeimami.com*****的远程资源.(原因:CORS 头缺少 'Access-Control- ...
- delete an extra edge from BST
Given a BST, remove an extra edge to make it BST. 7 / \ 5 9 / \ / 3 8 public void deleteEdge(T ...
- 【转贴】bat脚本基础教程
bat脚本基础教程 https://www.cnblogs.com/linyfeng/p/8072002.html 自己动手太少了. bat脚本就是DOS批处理脚本,就是将一系列DOS命令按照一定顺序 ...
- 【转帖】超能课堂(186) CPU中的那些指令集都有什么用?
超能课堂(186)CPU中的那些指令集都有什么用? https://www.expreview.com/68615.html 不明觉厉 开始的地方 第一大类:基础运算类x86.x86-64及EM64T ...
- 必备idea 插件plugins 提高编码效率
最近发现了几个非常好用 提高编码效率 的idea 插件 跟大家分享一下 因为idea自带的插件下载可能连接不上服务器而导致插件下载失败,所以这里推荐使用引入外部插件的方式 插件包也给你们准备好了( ...
- shell提升篇
6. 条件判断 1.基本语法 [ condition ](注意condition前后要有空格) 注意:条件非空即为true,[ fsdm ]返回true,[] 返回false. 2. 常用判断条件 ( ...
- json与String的转化
String转成jsonObject JsonObject json = JsonObject.fromObject(String str) String转成JsonArray J ...
- 【模板】SPFA(不完全详解)
一种最短路求法(个人觉得比DIJKSTRA好用) 用于有向图. 大概思路:从根节点开始,枚举每一个点,同时更新他们所联通的点的最短路径,如果路径被更新,则把这个点入队,一直重复这个操作直到队伍为空为止 ...