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 小时前
qt c++ 局域网聊天小工具
c++·qt·个人开发
笨笨马甲3 小时前
Qt network开发
开发语言·qt
mengzhi啊20 小时前
Qt Designer UI 界面 拖的两个 QLineEdit,想按 Tab 从第一个跳到第二个
qt
笨笨马甲1 天前
Qt MQTT
开发语言·qt
姓刘的哦1 天前
Qt实现蚂蚁线
开发语言·qt
Ivy_belief1 天前
Qt网络编程实战:从零掌握 QUdpSocket 及 UDP 通信
网络·qt·udp
丁劲犇1 天前
在Trae Solo模式下用Qt HttpServer和Concurrent升级MCP服务器绘制6G互联网覆盖区域
服务器·开发语言·qt·ai·6g·mcp·trae
笨笨马甲1 天前
Qt MODBUS协议
开发语言·qt
我喜欢就喜欢1 天前
Word 模板匹配与样式同步技术详解
开发语言·c++·qt·word·模板匹配