QObject、QWidget、Widget三者的关系

这三者是层层继承 的关系,一句话概括:
QObject → QWidget → Widget(你自己的类)

我给你画个最清晰的层级图:

继承关系(从上到下)

1. QObject(祖宗)

  • 提供:对象树、信号槽、内存管理
  • 看不见,摸不着,纯功能基类。
    2. QWidget(父类)
  • 继承自: QObject
  • 提供:窗口、控件、绘图、事件
  • 是所有可视化界面的祖宗(按钮、输入框都是它的子类)。
  1. Widget(你的类)
  • 继承自: QWidget
  • 就是你新建项目时,Qt自动生成的那个主窗口类。
  • 代码里长这样:
cpp 复制代码
class Widget : public QWidget  // 看这里!
{
    Q_OBJECT
};

2. 通俗比喻

  • QObject = 动物(有生命,会呼吸=信号槽,有后代=对象树)
  • QWidget = 人(继承了动物的特性,还长了脸、能走路=能显示、能交互)
  • Widget = 你(继承了人的特性,是一个具体的人,你可以给自己穿衣服=加按钮)

3. 核心结论

  • Widget 是 QWidget 的子类,所以它能显示窗口。
  • QWidget 是 QObject 的子类,所以它能自动内存管理、能用信号槽。

所以:你的 Widget 拥有 Qt 最核心的两大能力:能显示界面 + 自动管内存

相关推荐
Hua-Jay2 小时前
OpenCV联合C++/Qt 学习笔记(二十三)----图像校正及单目位姿估计
c++·笔记·qt·opencv·学习·计算机视觉
mirror_zAI2 小时前
C++ 仿 QQ 聊天室项目:Qt 客户端 + epoll 服务端 + Reactor 架构(含源码)
c++·qt·架构
Hua-Jay3 小时前
OpenCV联合C++/Qt 学习笔记(二十四)----差值法检测移动物体、稠密光流法跟踪移动物体及稀疏光流法跟踪移动物体
c++·笔记·qt·opencv·学习·计算机视觉
努力努力再努力wz4 小时前
【QT入门系列】QWidget 六大常用属性详解:windowOpacity、cursor、font、focus、toolTip 与 styleSheet
android·开发语言·数据结构·c++·qt·mysql·算法
程序leo源18 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#
我在人间贩卖青春20 小时前
重学Qt——事件处理
qt
小宋00120 小时前
QT中控件qss样式修改
开发语言·qt
yuechuji0011 天前
三、MPR(三平面重建)和三视图
qt
Hua-Jay1 天前
OpenCV联合C++/Qt 学习笔记(二十二)----相机模型与投影及单目相机标定
c++·笔记·qt·opencv·学习·计算机视觉
小短腿的代码世界1 天前
QCefView架构深度解析:从Chromium嵌入到Qt信号槽集成的完整技术链路
qt·架构