将没有父对象的组件加入布局,将布局设置给一个窗口,窗口析构时,组件自动释放

创建按钮,和布局管理器,把按钮加入到布局管理器,窗口中使用布局管理器。

MyButton *button2 = new MyButton;
MyButton *button3 = new MyButton;
QHBoxLayout *layout = new QHBoxLayout;
layout ->addWidget(button2);
layout ->addWidget(button3);
setLayout(layout);  //在该窗口中使用布局管理器
 
qDebug() << children();  //输出所有子部件的列表
析构函数中已经有销毁ui, 加入输出函数,使显示清晰

delete ui;
qDebug() << "delete widget";
输出结果
子部件列表

 析构函数输出,每次销毁按钮部件都会输出信息

 总结
创建窗口部件时,要指定其父部件,这样,销毁父部件时就会销毁掉所有子部件,不需要每一个都delete操作。按钮1指定父部件为widget,所有销毁widget时,销毁了按钮1。

布局管理器可以让没有指定父部件的部件重新定义父部件,指定它们包括布局管理器本身的拥有权。按钮2,3 没有指定父部件,把他们加入到布局管理器中管理,在窗口widget中使用布局管理器,就把按钮2,3和布局管理器的父部件都指定为widget,销毁widget,也销毁了按钮2,3。

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 14:08:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 14:08:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 14:08:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 14:08:05       20 阅读

热门阅读

  1. docker安装Neo4j

    2024-04-09 14:08:05       11 阅读
  2. Docker Compose安装步骤

    2024-04-09 14:08:05       14 阅读
  3. Node.js的安装与配置在Windows和mac上

    2024-04-09 14:08:05       14 阅读
  4. HTTPS、对称/非对称加密、SSL/TLS

    2024-04-09 14:08:05       18 阅读
  5. SSH和交换机端口安全概述

    2024-04-09 14:08:05       14 阅读
  6. CSS面试题---页面布局

    2024-04-09 14:08:05       11 阅读
  7. 构建ArkTS之@Builder装饰器:自定义构建函数

    2024-04-09 14:08:05       15 阅读
  8. 【牛客SQL快速入门】SQL基础(一)

    2024-04-09 14:08:05       12 阅读
  9. 出海业务的网络安全挑战

    2024-04-09 14:08:05       14 阅读
  10. 面试题:React的真实DOM和虚拟DOM的区别

    2024-04-09 14:08:05       11 阅读
  11. 从零开始构建网络爬虫:ScrapeKit库详解

    2024-04-09 14:08:05       13 阅读
  12. Vue 3中toRaw和markRaw的使用

    2024-04-09 14:08:05       11 阅读
  13. 目录模板-深度学习pytorch实战

    2024-04-09 14:08:05       14 阅读