QT/C++编程关于delete ui的问题

Triple_HHH3 2019-09-05 02:47:52

Qt Creator编译的窗口类是用的是*ui,在析构函数中可以通过delete ui释放内存,如下:

QWDialogSize::~QWDialogSize()
{
delete ui;
}

但是我用的是VS添加的QT的窗口类,自动创建的是

创建的是Ui::QWDialogSize ui;

使用“delete ui;”来释放内存则报错



请问在使用VS/QT编程的情况下我应该如何delete窗口类释放内存?
...全文
287 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Triple_HHH3 2020-06-03
引用 5 楼 Ujig的回复:
[quote=引用 2 楼 Triple_HHH3 的回复:] [quote=引用 1 楼 真相重于对错的回复:]如果不是指针,它会自动释放
我想问问,为什么QT Creator创建的窗口类生成的是*ui的私有变量,而用VS创建QT的窗口类生成的是ui的私有变量?[/quote] 您好,我也在为这个问题困扰,您解决了吗?[/quote] 没有解决,我现在也不在用qt了
回复
Ujig 2020-06-03
引用 2 楼 Triple_HHH3 的回复:
[quote=引用 1 楼 真相重于对错的回复:]如果不是指针,它会自动释放
我想问问,为什么QT Creator创建的窗口类生成的是*ui的私有变量,而用VS创建QT的窗口类生成的是ui的私有变量?[/quote] 您好,我也在为这个问题困扰,您解决了吗?
回复
Ujig 2020-06-03
引用 2 楼 Triple_HHH3 的回复:
[quote=引用 1 楼 真相重于对错的回复:]如果不是指针,它会自动释放
我想问问,为什么QT Creator创建的窗口类生成的是*ui的私有变量,而用VS创建QT的窗口类生成的是ui的私有变量?[/quote] 您好,我也在为这个问题困扰,您解决了吗?
回复
qt没有了解过。所以creator为何用指针,而vs不用,我不清楚。 这两个从语法上的区别在于,指针的话,他的生存期,由用户确定,如果不在析构函数中delete,将永远存在直到程序结束。 你要是用普通变量,他的生存期由包含他的类对象决定,当类对象结束时,他也结束。
回复
Triple_HHH3 2019-09-05
引用 1 楼 真相重于对错的回复:
如果不是指针,它会自动释放
我想问问,为什么QT Creator创建的窗口类生成的是*ui的私有变量,而用VS创建QT的窗口类生成的是ui的私有变量?
回复
如果不是指针,它会自动释放
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3843

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2019-09-05 02:47
社区公告
暂无公告