mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
// 头文件保护宏,防止 mainwindow.h 被重复包含造成重复定义
#include <QMainWindow>
// 引入 Qt 中的主窗口类 QMainWindow
QT_BEGIN_NAMESPACE
// Qt 命名空间开始(用于兼容 Qt4 / Qt5 / Qt6)
namespace Ui {
class MainWindow;
}
// 声明 Ui 命名空间中的 MainWindow 类
// 该类由 Qt Designer 生成,对应 mainwindow.ui 文件
QT_END_NAMESPACE
// Qt 命名空间结束
class MainWindow : public QMainWindow
// MainWindow 类继承自 QMainWindow,表示一个主窗口
{
Q_OBJECT
// Qt 元对象宏,必须存在
// 用于支持信号与槽、事件机制等 Qt 特性
public:
explicit MainWindow(QWidget *parent = nullptr);
// 构造函数
// parent 是父窗口指针,默认为空(顶层窗口)
~MainWindow();
// 析构函数,用于释放资源
private:
Ui::MainWindow *ui;
// 指向界面对象的指针
// 用于访问 ui 中设计的控件(按钮、标签等)
};
#endif // MAINWINDOW_H
// 结束头文件保护
main.c
#include "mainwindow.h"
// 引入主窗口类的头文件
#include <QApplication>
// 引入 Qt 应用程序类 QApplication
// 每个 Qt GUI 程序都必须且只能有一个 QApplication 对象
int main(int argc, char *argv[])
{
// 程序入口函数
// argc:命令行参数个数
// argv:命令行参数数组
QApplication a(argc, argv);
// 创建 Qt 应用程序对象
// 负责管理应用程序级资源、事件循环等
MainWindow w;
// 创建主窗口对象
w.show();
// 显示主窗口(如果不调用,窗口不会显示)
return a.exec();
// 进入 Qt 事件循环
// 程序将在此处等待并处理用户事件
// 当窗口关闭时,exec() 返回,程序结束
}
mainwindow.cpp
#include "mainwindow.h"
// 引入主窗口类的头文件,包含类声明
#include "ui_mainwindow.h"
// 引入 Qt Designer 自动生成的界面头文件
// 该文件定义了 Ui::MainWindow 类
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) // 调用父类 QMainWindow 的构造函数
, ui(new Ui::MainWindow) // 动态创建界面对象
{
ui->setupUi(this);
// 初始化界面
// 将 ui 文件中设计的控件加载到当前 MainWindow 对象中
}
MainWindow::~MainWindow()
{
delete ui;
// 释放界面对象,防止内存泄漏
}