Qt [GC9-12]:中途遇到问题解决 析构函数无法释放资源

简介: Qt [GC9-12]:中途遇到问题解决 析构函数无法释放资源

image.png

基于Qt的汽车仪表模拟


在我准备开始写HUD的时候,发现一个新的问题。


那就是我开始将我的资源释放都写在了控制台的析构函数中,但是呢,在程序结束的时候却不会释放我的资源,这点搞得我好烦啊,析构函数不就是在程序结束的时候释放资源吗。



那么具体表示就是我在控制台中创建了HUD窗口,并且在控制台的析构函数中实现了对HUD窗口的回收。但是呢,结果却是当我结束控制台程序的时候,HUD窗口并没有随之消失,依旧显示在说面上。代码如下

ControlPanel::~ControlPanel()
{ 
    if(timer_Change_Jianwei_Color)
    {
        timer_Change_Jianwei_Color->stop();
        delete timer_Change_Jianwei_Color;
        timer_Change_Jianwei_Color = NULL;
    }
    if(timer_Get_Current_Time)
    {
        timer_Get_Current_Time->stop();
        delete timer_Get_Current_Time;
        timer_Get_Current_Time = NULL;
    }
    if(myHUD)
    {
        myHUD->close();
        delete myHUD;
        myHUD = NULL;
    }
    delete ui;
}

对应的解决方法是啥,其实很很简单,就是我自己写一个资源回收的含,在控制台程序结束的时候先调用我的资源回收,完了吧控制台的关闭函数写在我的资源函数回收里面就好了。代码如下

void ControlPanel::my_Close()
{
    if(timer_Change_Jianwei_Color)
    {
        timer_Change_Jianwei_Color->stop();
        delete timer_Change_Jianwei_Color;
        timer_Change_Jianwei_Color = NULL;
    }
    if(timer_Get_Current_Time)
    {
        timer_Get_Current_Time->stop();
        delete timer_Get_Current_Time;
        timer_Get_Current_Time = NULL;
    }
    if(myHUD)
    {
        myHUD->close();
        delete myHUD;
        myHUD = NULL;
    }
    this->close();
}

image.png

目录
相关文章
|
编解码 Windows
案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)
案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)
案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)
案例分享:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)
案例分享:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)
案例分享:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)
PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
443 0
PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
|
存储 iOS开发 C++
Qt之资源系统
简述 Qt 的资源系统用于存储应用程序的可执行二进制文件,它采用平台无关的机制。当你的程序总需要这样的一系列文件(图标、翻译文件等)并且不想冒丢失某些文件的风险时,这就显得十分有用。 资源系统基于 qmake、rcc(Qt 资源编译器) 和 QFile 之间的紧密合作。 简述 资源集合文件qrc 外部二进制资源 内编译资源 压缩 在程序中使用资源 在库中使用资源
1554 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
147 2
Qt开发网络嗅探器02
Qt开发网络嗅探器02

推荐镜像

更多