Qt Widget介绍

你说的是 Qt 新建项目时,系统自动生成的那个 Widget 类对吧?我给你讲清楚它到底是啥、怎么来的、干啥用的。

一、Widget 是什么?

QWidget 是 Qt 里所有界面控件的"祖宗"。

按钮、输入框、窗口、标签......全都是它的子类。

你新建项目时,Qt 自动给你生成一个:

cpp 复制代码
class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
private:
    Ui::Widget *ui;
};

它就是你的主窗口

二、系统为什么自动生成它?

因为 Qt 程序必须有一个顶层窗口 ,否则界面显示不出来。

系统自动生成 Widget ,就是给你一个现成可用的主窗口,你直接往里加按钮、布局就行。

三、它是怎么"自动生成"的?

你新建项目时选:
Qt Widgets Application

Qt Creator 就会自动生成 3 个文件:

  • widget.h
  • widget.cpp
  • widget.ui (可视化界面文件)

这是 Qt 的默认模板,为了让你快速开始写界面。

四、它和对象树的关系(重点)

这个 Widget 就是对象树的根节点

你在上面放的所有控件(按钮、输入框),它都是父对象。

所以:

  • 关闭窗口 → Widget 销毁
  • 所有子控件自动跟着销毁(内存安全)
五、一句话总结

Widget = Qt 自动给你的主窗口 + 对象树根节点

不用你自己写,直接用就行。

相关推荐
霸道流氓气质2 分钟前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式
路溪非溪34 分钟前
Python语言的执行流程总结
开发语言·python
民乐团扒谱机41 分钟前
【超详解】量子克拉美罗下界QCRB:时延估计精度极限推导+MATLAB多场景绘图实战
开发语言·机器学习·matlab·量子力学·qcrb
乐观勇敢坚强的老彭1 小时前
C++ 竞赛常用算法模板速查表
开发语言·c++·算法
离陌在学C#2 小时前
C# 泛型:从基础到高级应用
开发语言·c#
ly76892 小时前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式
SomeB1oody2 小时前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程
萧瑟余晖2 小时前
Java深入解析篇三十之Java日志框架
java·开发语言
Herbert_hwt2 小时前
【C语言基础】常量、选择结构与运算符全解析
c语言·开发语言·算法
AI视觉网奇2 小时前
动作识别 视频理解大模型
开发语言·python·音视频