当前位置: 首页 > news >正文

基于QWidget创建的自定义窗口在使用isVisible时造成程序崩溃

如果直接使用 TMyPicEdit *PicEdit; 创建对象,使用下面函数打开窗口。

进行窗口打开一次然后关闭操作后,运行下面“ 判断窗口是否打开” 函数。当代码执行到PicEdit->isVisible()时程序会崩溃,原因在于此时,PicEdit处于被创建且定义过,

PicEdit!=nullptr为真

(尽管自定义类的析构函数当中销毁了,但是在C++的设计中,指针只是一个内存地址,当对象销毁后,或变成无效,指针变量自身存储的地址值不会自动改变,它仍然指向无效的内存区域或重用,此时成为“悬垂指针”)

轮到执行到PicEdit->isVisble()此行时,指针已经被销毁,程序出现崩溃。

解决:

使用智能指针QPointer,Qt的一种智能指针,内部通过监听对象的销毁信号(如QObject::destroyed())来实现自动置空。

//TMyPicEdit *PicEdit;//取消使用 QPointer<TMyPicEdit> PicEdit;//使用此行代码
http://www.jsqmd.com/news/477266/

相关文章:

  • 2026海鲜泡沫箱采购攻略:精选厂家不容错过,国内头部泡沫箱企业排行榜单赋能企业生产效率提升与成本优化 - 品牌推荐师
  • 【最好最全面】openclaw安装方法【教程即时更新,永不过期】
  • CSDN Markdown 微笑与 section 符号
  • 打印机连接故障排除方案
  • SNMP(简单网络管理协议)
  • Python 中通过命令行向函数传参
  • 天津市优秀的GEO生成式AI引擎优化的公司有哪些
  • **WebTransport:下一代低延迟实时通信协议的实战解析与代码实现**
  • LSTM的工作原理
  • 2026年创业热潮来袭,专业创业指导定制公司能否成为TOP选择?
  • 闲置天猫超市卡别等过期!这样处理,安全又省心 - 可可收
  • 第三章 第一性原理:从零到一的完整思考方法论
  • 技术:双电脑共享鼠标、键盘解决方案 | USB对拷线、Synergy
  • 电赛信号题备赛日记(1)移植正点原子STM32H750 mini pro的TFTLCD屏幕
  • 行楷 - 汉字行楷手写体字形
  • 文献汇总|AI生成图像检测与溯源相关工作(2026)
  • Win10 WSL安装Centos7 Nginx+PHP+MySQL
  • 柔性温度传感器--折线型结构
  • Tomcat简单实现
  • 关于学生课堂行为识别算法
  • 微软 GraphRAG从构图到检索的核心逻辑与代码实现
  • 2026年黄铜、不锈钢、钛合金光纤接头精密零件CNC加工厂家权威推荐:这三家凭什么脱颖而出? - 余文22
  • Esri 2020 10m全球土地覆盖数据下载(Land Cover Downloader)
  • Visual Studio - 修改主题背景颜色
  • 衬线字体 (serif) 和无衬线字体 (sans-serif)
  • Flutter 三方库 google_play_scraper 鸿蒙适配指南 - 实现高性能应用商店元数据抓取、在 OpenHarmony 上打造竞品分析数据防御线实战
  • 蜂胶经常吃的品牌是选哪个? 2026年高吸收蜂胶TOP十榜单:10款实测优选! - 博客万
  • Visual Studio - 修改字体
  • 2019年年底面试了几家大型互联网公司
  • 人脸识别/戴口罩人脸识别 快速实现部署系统方案(Linux / Android)