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注意事项相关推荐

  1. 列表框QListWidget类

    QListWidget类也是GUI中常用的类,它从QListView下派生: class Q_GUI_EXPORT QListWidget : public QListView {Q_OBJECT 常 ...

  2. Qt学习笔记之常用控件QlistWidget

    一.QListWidget Class The QListWidget class provides an item-based list widget. More... Header: #inclu ...

  3. Qt笔记 之 QListWidget控件的使用

    Qt提供QListWidget类列表框控件用来加载并显示多个列表项.QListWidgetItem类就是列表项类.一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加的列表项,比如音乐播放器 ...

  4. Qt QListWidget列表框用法详解

    Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...

  5. gpt用pyQT和python 写待办事项程序,回头把我自己写的改造一下

    首先,需要安装以下库: - PyQt5:用于创建桌面应用程序的GUI界面 - sqlite3:用于连接和操作SQLite数据库 然后,可以按照以下步骤来实现待办事项程序: 1. 创建一个SQLite数 ...

  6. C++ OP相关注意事项

    C++ OP相关注意事项 Paddle中Op的构建逻辑 1.Paddle中Op的构建逻辑 Paddle中所有的Op都继承自OperatorBase,且所有的Op都是无状态的,每个Op包含的成员变量只有 ...

  7. Hashing散列注意事项

    Hashing散列注意事项 Numba支持内置功能hash(),只需__hash__()在提供的参数上调用成员函数即可 .这使得添加对新类型的哈希支持变得微不足道,这是因为扩展APIoverload_ ...

  8. android 读取asset下的文件注意事项

    注意事项:file:后面是三个斜杠,后面是android_asset,在后面就是html的名字.

  9. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

最新文章

  1. 造车新势力“围猎”秋招,应届生如何拿下高薪 offer ?
  2. Java并发编程:Java内存模型JMM
  3. Zigbee系列(概览)
  4. Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
  5. AC日记——Power收集 洛谷 P3800
  6. 基于MQ的分布式事务解决方案
  7. 路由器OSPF协议配置命令一
  8. boost::range::istream_range相关的测试程序
  9. 斑能不能彻底去掉_海鲜不能和什么一起吃
  10. 轻量化版本优于MobileNet系列 | Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet
  11. python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
  12. 快速阅读之眼球的训练
  13. 内外盘分仓跟单系统源码CTP程序化交易系统源码
  14. 排列组合思维导图_图形推理 思维导图 百度文库
  15. python二手房课程设计_基于python爬取链家二手房信息代码示例
  16. 解决safari里面淘宝京东页面无法打开以及打开后乱码的问题!
  17. 小白都能学会的Python基础 第一讲:Python初了解
  18. DCM:中间件家族迎来新成员,属实牛逼
  19. 【随机算法梗概】遗传算法通俗的讲解案例~~
  20. oracle归档日志百分比,oracle归档日志过满清理

热门文章

  1. windows WinExec()
  2. 【Scapy】获取流量包【原创】
  3. 【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由
  4. 荣耀magic3参数配置
  5. 994. 腐烂的橘子 (广度探索)
  6. ABP理论学习之数据过滤器
  7. Chrome模拟IOS/IPad/Android运行环境
  8. cad引出线段lisp_lisp将多条线条合并成一条多段线
  9. 笔记本连接android手机,安卓手机连接电脑,详细教您安卓手机怎样连接电脑
  10. VS Code错误 “preloads: Could not find renderer” 解决办法