QT系列,对象树 栈和堆 QDebug以及日志打印

学习要点

一.QT对象树特征

QT对象数特征,几个空间就有几个窗口

解决方案

思想:父亲孩子思想,按钮界面是窗口界面的孩子

两种方法

第三种方法的 两种写法以及要点:

在窗口上面写按钮接口时,函数执行结束后,先析构窗口界面,因为父子关系,同时析构按钮界面,后来又执行依次析构按钮,所以出错;

但是按照父子关系顺序不会出错

结论:

对象树实现自定义类

QObject类:

头文件:#include <QObject>
CMake 配置:
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
QMake 配置:QT += core
子对象中有子对象,先删除孩子的孩子,在找到父亲,在父亲中的子列表删除的该孩子

栈和堆

栈:系统管、速度快、容量小、自动回收,适合存储临时的小变量 / 局部对象;

堆:自己管、速度慢、容量大、手动回收,适合存储大对象 / 生命周期长的对象;

函数内部的普通局部变量 / 对象是栈,new 创建的不管在函数内还是外都是堆;"函数外部" 的全局 / 静态变量不属于栈 / 堆,是单独的全局数据区

二.QDebug以及日志打印

命名方式

QT中大驼峰命名法是类名/头文件名

小驼峰一般是对象名

QDebug用处

QDebug用来输出QT类型的内容,和cout类似

头文件:#include<QDebug>

函数中:qDebug()<<...;

日志管理

按照信息程度来讲

宏定义

不想看到QDebug中的字,直接看效果,但是出错的情况下仍然提示,引入宏定义(条件编译)target_compile_definitions(ex08_objectTree PRIVATE QT_NO_DEBUG_OUTPUT)

意思:只作用于该文件ex08...上,PRIVATE私有化的方式添加宏定义QT_NO_DEBUG_OUTPUT

添加上CMake中

相关推荐
qq_199886872 小时前
第6板块·第4节:构建系统与多文件项目
c++·人工智能·gpu算力
知识分享小能手4 小时前
深度学习学习教程,从入门到精通,深度生成模型 —— 知识点详解与代码实现(20)
人工智能·深度学习·学习
汉克老师4 小时前
GESP2026年9月认证C++三级( 第三部分编程题(2、分割字符串))精讲
c++·gesp·小学生·学c++编程
估值探索者4 小时前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(74):CompassMem——从相似度检索走向事件图上的记忆导航
论文阅读·人工智能·学习·开源·github
小李不想当小白4 小时前
DMA直接存储器存取(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·分享
RAN11426760084 小时前
1.3第一个程序的介绍
开发语言·qt
天若有情6734 小时前
C++花式魔改!手写头文件复刻Java语法,彻底打破编码思维定式
java·c++·语言做语言·jac++
qq_199886875 小时前
第7板块·第3节:CUTLASS 的 GEMM 实现与优化策略
c++·人工智能·gpu算力·cuda
hetao17338375 小时前
2026-09-17 hetao1733837 的刷题记录
c++·算法