这三者是层层继承的关系一句话概括QObject → QWidget → Widget你自己的类我给你画个最清晰的层级图继承关系从上到下1. QObject祖宗提供对象树、信号槽、内存管理看不见摸不着纯功能基类。2. QWidget父类继承自 QObject提供窗口、控件、绘图、事件是所有可视化界面的祖宗按钮、输入框都是它的子类。Widget你的类继承自 QWidget(QWidget的实例)调用QWidget的成员方法 就是你新建项目时Qt自动生成的那个主窗口类。代码里长这样classWidget:publicQWidget// 看这里{Q_OBJECT};2. 通俗比喻QObject 动物有生命会呼吸信号槽有后代对象树QWidget 人继承了动物的特性还长了脸、能走路能显示、能交互Widget 你继承了人的特性是一个具体的人你可以给自己穿衣服加按钮3. 核心结论Widget 是 QWidget 的子类所以它能显示窗口。QWidget 是 QObject 的子类所以它能自动内存管理、能用信号槽。所以你的 Widget 拥有 Qt 最核心的两大能力能显示界面 自动管内存。QObject根├─ 应用程序与全局│ ├─ QCoreApplication控制台/非UI│ ├─ QGuiApplication图形界面基础│ └─ QApplicationWidget 专用│├─ 窗口与控件QWidget 体系│ ├─ QMainWindow主窗口│ ├─ QDialog对话框│ ├─ QFrame框架/容器│ ├─ QPushButton / QToolButton│ ├─ QLabel│ ├─ QLineEdit / QTextEdit / QPlainTextEdit│ ├─ QCheckBox / QRadioButton│ ├─ QComboBox / QListWidget / QTreeWidget / QTableWidget│ ├─ QSlider / QSpinBox / QDoubleSpinBox│ ├─ QProgressBar│ ├─ QScrollArea│ ├─ QSplitter│ ├─ QTabWidget / QStackedWidget│ ├─ QMenuBar / QMenu / QAction│ ├─ QToolBar│ ├─ QStatusBar│ └─ QLayout布局│ ├─ QVBoxLayout / QHBoxLayout│ ├─ QGridLayout│ └─ QFormLayout│├─ 线程与定时器│ ├─ QThread│ ├─ QTimer│ └─ QThreadPool│├─ 网络│ ├─ QNetworkAccessManager│ ├─ QNetworkRequest / QNetworkReply│ ├─ QTcpServer / QTcpSocket│ ├─ QUdpSocket│ └─ QHostAddress│├─ 文件与IO│ ├─ QIODevice│ │ ├─ QFile│ │ ├─ QTemporaryFile│ │ ├─ QBuffer│ │ ├─ QProcess│ │ └─ QSerialPort│ ├─ QDir│ ├─ QFileInfo│ └─ QFileSystemWatcher│├─ 数据模型MVC│ ├─ QAbstractItemModel│ │ ├─ QStandardItemModel│ │ ├─ QFileSystemModel│ │ ├─ QSqlQueryModel / QSqlTableModel│ │ └─ QSortFilterProxyModel│ └─ QItemSelectionModel│├─ 数据库│ ├─ QSqlDatabase│ ├─ QSqlQuery│ ├─ QSqlError│ └─ QSqlRecord│├─ 图形与绘图│ ├─ QPixmap / QImage│ ├─ QPainter│ ├─ QPen / QBrush│ ├─ QFont│ └─ QRegion│├─ 多媒体│ ├─ QMediaPlayer│ ├─ QMediaPlaylist│ └─ QCamera│├─ QML 相关│ ├─ QQmlApplicationEngine│ ├─ QQmlContext│ └─ QQuickView│├─ 事件与信号槽│ ├─ QEvent│ ├─ QSignalMapper│ └─ QShortcut│└─ 其他常用├─ QSettings配置├─ QClipboard剪贴板├─ QCursor├─ QMimeData├─ QTranslator国际化└─ QStyle