QT中WA_DeleteOnClose属性

来源:互联网 发布:中国建设银行总行 知乎 编辑:程序博客网 时间:2024/05/16 06:09

根据http://blog.csdn.net/dbzhang800/article/details/6300021文章,QT中调用close时,默认情况下是不会释放new的内存的,只是干掉了界面,但内存中还有,这个时候有点类似hide函数的功能。

    virtual void setVisible(bool visible);
    inline void setHidden(bool hidden) { setVisible(!hidden); }
    inline void show() { setVisible(true); }
    inline void hide() { setVisible(false); }

但是,在当前窗体类的构造函数中如果设置了this->setAttribute(Qt::WA_DeleteOnClose,true);那么close时就会在内存中干掉界面,释放new的内存,下次再使用这块内存时(比如show)就会段错误。实际过程是delete了堆内存,并且还调用了析构函数。

0 0
原创粉丝点击