Qt [GC9-12]:中途遇到问题解决 析构函数无法释放资源
【摘要】
基于Qt的汽车仪表模拟
在我准备开始写HUD的时候,发现一个新的问题。
那就是我开始将我的资源释放都写在了控制台的析构函数中,但是呢,在程序结束的时候却不会释放我的资源,这点搞得我好烦啊,析构函数不就是在程序结束的时候释放资源吗。
那么具体表示就是我在控制台中创建了HUD窗口,并且在控制台的析构函数中实现...
基于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();
-
}
2019/07/21 17:42
文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。
原文链接:dreamlife.blog.csdn.net/article/details/97241214
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)