QListWidget removeItemWidget注意事项
1、removeItemWidget不会释放通过setItemWidget输入的QWidget对象,需要自己手动释放
如
//QListWidget *listWidget ...
QListWidgetItem *item = new QListWidgetItem;
QWidget *wig = new QWidget; //堆对象
listWidget->setItemWidget(item, wig);
listWidget->removeItemWidget(item); //删除item对应的widget
QWidget *wig1 = listWidget->itemWidget(item); //此处wig1为空指针,说明widget与item已经解绑
delete wig; //wig仍然存在,要手动删除
wig = nullptr;
2、removeItemWidget和takeItem配合使用时要注意先后顺序
takeItem会触发currentItemChanged和currentRowChanged信号,如果为这些信号绑定了槽而且在槽里面用到了itemWidget,就要注意判断itemWidget返回是否为空。
如
...
connect(listWidget, &QListWidget::currentItemChanged, this, [&](QListWidgetItem *current, QListWidgetItem *previous){ if(current) //删除列表最后一项时,current为空指针(当然,此处不判断程序也不会出错){QWidget *wig = listWidget->itemWidget(current);if (wig) //当删除列表最后一项且此前已经removeItemWidget,则wig是空指针{wig->Selected(); }}if(previous) //首次为列表添加项时,previous为空指针(当然,此处不判断程序也不会出错){QWidget *wig_0 = listWidget->itemWidget(previous);if (wig_0) //如果此前已经removeItemWidget,则wig_0为空指针{wig_0->Unselected(); }}});
...
void DeleteItem()
{listWidget->removeItemWidget(listWidget->currentItem());
QListWidgetItem *item = listWidget->takeItem(listWidget->currentRow()); //takeItem会先进入上面的槽函数
...
}
QListWidget removeItemWidget注意事项相关推荐
- 列表框QListWidget类
QListWidget类也是GUI中常用的类,它从QListView下派生: class Q_GUI_EXPORT QListWidget : public QListView {Q_OBJECT 常 ...
- Qt学习笔记之常用控件QlistWidget
一.QListWidget Class The QListWidget class provides an item-based list widget. More... Header: #inclu ...
- Qt笔记 之 QListWidget控件的使用
Qt提供QListWidget类列表框控件用来加载并显示多个列表项.QListWidgetItem类就是列表项类.一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加的列表项,比如音乐播放器 ...
- Qt QListWidget列表框用法详解
Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...
- gpt用pyQT和python 写待办事项程序,回头把我自己写的改造一下
首先,需要安装以下库: - PyQt5:用于创建桌面应用程序的GUI界面 - sqlite3:用于连接和操作SQLite数据库 然后,可以按照以下步骤来实现待办事项程序: 1. 创建一个SQLite数 ...
- C++ OP相关注意事项
C++ OP相关注意事项 Paddle中Op的构建逻辑 1.Paddle中Op的构建逻辑 Paddle中所有的Op都继承自OperatorBase,且所有的Op都是无状态的,每个Op包含的成员变量只有 ...
- Hashing散列注意事项
Hashing散列注意事项 Numba支持内置功能hash(),只需__hash__()在提供的参数上调用成员函数即可 .这使得添加对新类型的哈希支持变得微不足道,这是因为扩展APIoverload_ ...
- android 读取asset下的文件注意事项
注意事项:file:后面是三个斜杠,后面是android_asset,在后面就是html的名字.
- Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)
Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...
最新文章
- 造车新势力“围猎”秋招,应届生如何拿下高薪 offer ?
- Java并发编程:Java内存模型JMM
- Zigbee系列(概览)
- Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
- AC日记——Power收集 洛谷 P3800
- 基于MQ的分布式事务解决方案
- 路由器OSPF协议配置命令一
- boost::range::istream_range相关的测试程序
- 斑能不能彻底去掉_海鲜不能和什么一起吃
- 轻量化版本优于MobileNet系列 | Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet
- python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
- 快速阅读之眼球的训练
- 内外盘分仓跟单系统源码CTP程序化交易系统源码
- 排列组合思维导图_图形推理 思维导图 百度文库
- python二手房课程设计_基于python爬取链家二手房信息代码示例
- 解决safari里面淘宝京东页面无法打开以及打开后乱码的问题!
- 小白都能学会的Python基础 第一讲:Python初了解
- DCM:中间件家族迎来新成员,属实牛逼
- 【随机算法梗概】遗传算法通俗的讲解案例~~
- oracle归档日志百分比,oracle归档日志过满清理
热门文章
- windows WinExec()
- 【Scapy】获取流量包【原创】
- 【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由
- 荣耀magic3参数配置
- 994. 腐烂的橘子 (广度探索)
- ABP理论学习之数据过滤器
- Chrome模拟IOS/IPad/Android运行环境
- cad引出线段lisp_lisp将多条线条合并成一条多段线
- 笔记本连接android手机,安卓手机连接电脑,详细教您安卓手机怎样连接电脑
- VS Code错误 “preloads: Could not find renderer” 解决办法