QT程序退出后托盘图标不消失问题

我在主程序的main.cpp里用new创建了一个QsystemTrayIcon类的对象,以便程序在桌面右下角显示托盘图标。但是,当我的程序退出的时候,托盘图标却没有消失。我觉得,这是因为这个对象是在堆上分配的,程序退出的时候­没有使用delete对内存进行释放,也就是说没有调用它的析构函数,所以程序虽然结束了,但是托盘里仍然会有那个图标。

后来我用在栈上创建对象代替了在堆上创建,这样在程序退出时,对象自动删除。这时,我的程序退出的时候,托盘图标也就马上消失了。

所以,我觉得能用栈的地方尽量用栈,除非不能用栈的地方再用堆,以防止内存泄露,而且栈的效率要比堆高一些。

你可能感兴趣的:(delete,qt)