当前位置: 首页 > news >正文

12.小节

1.认识 QLabel 类,能够在界面上显示字符串.
通过 setText 来设置的.参数 QString (Qt 中把 C++ 里的很多容器类, 进行了重新封装.历史原因)

c++叫法容器类,java叫法集合类

 2.内存泄露,文件资源泄露

3.对象树。Qt 中通过对象树,来统一的释放界面的控件对象
Qt 还是推荐使用 new 的方式在堆上创建对象通过对象树,统一释放对象
创建对象的时候,在构造函数中,指定父对象(此时才会挂到对象树上)
如果你的对象没有挂到对象树上,就必须要记得手动释放!!

4.通过继承自 Qt 内置的类,就可以达到对现有控件进行功能扩展效果
Qt 内置的 QLabel,没法看到销毁过程的.为了看清楚,就创建类 MyLabel,继承自 QLabel
重写 析构函数.
在析构函数中,加上日志,,直观的观察到对象释放的过程了
也可以重写控件中的任何功能,不仅仅是析构函数~~ 达到功能扩展目的~~

面向对象“继承”,本质上是对现有代码进行的“扩展

5.乱码问题 和 字符集~ MySQL(很多地方都涉及到)

在 MySQL 5.7 及更早版本中,默认字符集是 latin1(拉丁文)

6.如何在 Qt 中打印日志,作为调试信息.
使用 cout 固然可以但是并不是上策(字符编码处理的不好,也不方便统一进行关闭)
你想通过宏统一关闭 qDebug() 日志输出,可以使用QT_NO_DEBUG_OUTPUT 宏
Qt 中推荐使用 gDebug() 完成日志的打印.①可以编码处理②日志打印统一关闭
之前调试程序,都是用调试器.VS / gdb为啥要打印日志调试呢??
调试器很多时候是有局限性的,是无法使用的.

假设当前 bug 是一个概率性的 bug,出现的概率是 1% 甚至更小
要想调试 无法使用调试器了.

可以借助日志循环打印,打印一些参数,利于观察bug出现的原因
使用日志,就可以很好的解决这种问题~~
无论是哪种方式,本质上都是观察程序执行的中间过程和中间结果~~

http://www.dtcms.com/a/105583.html

相关文章:

  • 关于React Redux
  • 【3. 软件工程】3.0 软件工程概述
  • Android View事件分发机制深度解析
  • QuecPython 的 VScode 环境搭建和使用教程
  • IS-IS认证
  • MySQL日志管理
  • NVR接入录像回放平台EasyCVR视频融合平台城市/乡镇污水处理厂解决方案
  • 计算机等级考试数据库三级(笔记2)
  • 032-overlayYUV
  • 深入解析Kapt —— Kotlin Annotation Processing Tool 技术博客
  • 使用 Portainer 轻松管理 Docker 环境:完整安装与使用指南
  • MD编辑器中的段落缩进怎么操作
  • 链路追踪Skywalking
  • QT实现四则运算计算器(QT实操1)
  • 多台服务器上docker部署 Redis 集群
  • Spring Boot @RequestParam 解析参数时的常见问题及解决方案
  • linux基本命令(2)--进程命令PS
  • Linux更换挂载nfs迁移数据流程
  • 使用AOP技术实现Java通用接口验签工具
  • 【vue】editor富文本输入全英文,谷歌浏览器:元素不会自动换行bug
  • 为什么hash%length 和hashlength-1 的值是一样的(当length=2的幂次方)
  • Java:三十年演进,永续创新的编程传奇
  • 【SPP】蓝牙 SDP 协议在SPP中的互操作性解析
  • vue2修改窗口字典回显
  • 四款高效数据报表工具 让数据分析更简单
  • TCP的连接建立
  • 解释一下Unity碰撞的触发条件
  • 【LeetCode Solutions】LeetCode 121 ~ 125 题解
  • Unity中根据文字数量自适应长宽的对话气泡框UI 会自动换行
  • 助力 Windows 文件管理:重命名与清理重复文件软件精选