c++ qt开发第一天 hello world

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;

// 释放界面对象,防止内存泄漏

}

相关推荐
傻啦嘿哟7 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670797 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
李少兄7 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
码匠许师傅8 小时前
【设计模式精讲】29.行为型模式总结与对比(Behavioral Patterns Summary)
c++·设计模式·uml
Seoyoneh8 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
啦啦啦啦啦zzzz8 小时前
Logger的组装(c++20)
c++·算法·c++20
Tangyuewei8 小时前
Java 写 Agent:模型只是组件
java·开发语言
小玮看世界9 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
繁星蓝雨10 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
Evand J10 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪