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 最核心的两大能力:能显示界面 + 自动管内存

相关推荐
程与留2 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
程与留3 小时前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
Quz10 小时前
QML 拖拽篇:接收拖拽与数据交换
qt
张人玉1 天前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js
「QT(C++)开发工程师」1 天前
C++11 std::unique_ptr — 独占所有权的智能指针
c语言·开发语言·c++·qt
小镇敲码人1 天前
【深入浅出】之Qt 事件系统实战:鼠标、键盘、滚轮、窗口与定时器事件
数据库·qt·网络协议·mysql·http
小小龙学IT1 天前
Qt 数据库编程(Qt SQL 模块)深度解析
数据库·sql·qt
Qt历险记1 天前
C++11 std::unique_ptr — 独占所有权的智能指针
qt
宏笋1 天前
一款集结古今中外文学查阅与编辑的软件
qt
机器视觉知识推荐、就业指导2 天前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt