news 2026/6/10 10:59:34

c++ qt开发第一天 hello world

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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;
// 释放界面对象,防止内存泄漏
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 7:14:26

WeMod专业版解锁工具使用指南:完整功能免费体验

WeMod专业版解锁工具使用指南&#xff1a;完整功能免费体验 【免费下载链接】Wemod-Patcher WeMod patcher allows you to get some WeMod Pro features absolutely free 项目地址: https://gitcode.com/gh_mirrors/we/Wemod-Patcher 还在为WeMod免费版的功能限制而苦恼…

作者头像 李华
网站建设 2026/6/10 7:15:36

Applite:现代化图形界面助力Homebrew Cask高效管理

Applite&#xff1a;现代化图形界面助力Homebrew Cask高效管理 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite Applite是一款专为macOS平台设计的图形化Homebrew Cask管理工具…

作者头像 李华
网站建设 2026/6/10 7:13:29

java的一些注解作用整理

一、基础 Java 内置注解 这类注解是 JDK 自带的,无需额外依赖,主要用于代码标记和编译控制。 注解名 作用 示例 @Override 标记方法重写父类 / 接口的方法,编译器会校验方法签名是否匹配 ```java @Override public String toString() { return "demo"; }``` @Dep…

作者头像 李华
网站建设 2026/6/10 7:16:46

如何快速掌握多语言字体:设计师的终极解决方案指南

如何快速掌握多语言字体&#xff1a;设计师的终极解决方案指南 【免费下载链接】source-han-sans-ttf A (hinted!) version of Source Han Sans 项目地址: https://gitcode.com/gh_mirrors/so/source-han-sans-ttf 在全球化的设计时代&#xff0c;字体选择往往成为设计师…

作者头像 李华
网站建设 2026/6/10 7:13:29

VSCode设置安全红线:3个步骤实现敏感文件自动告警

第一章&#xff1a;VSCode敏感文件安全告警的必要性在现代软件开发中&#xff0c;Visual Studio Code&#xff08;VSCode&#xff09;因其轻量级、可扩展性强而广受欢迎。然而&#xff0c;开发者在使用过程中常会无意间将敏感文件&#xff08;如环境变量配置 .env、私钥文件 id…

作者头像 李华
网站建设 2026/6/10 7:11:17

长连接保持技巧:AI建议心跳包机制与超时设置

长连接保持技巧&#xff1a;AI建议心跳包机制与超时设置 在部署轻量级推理模型的实践中&#xff0c;一个看似不起眼却频繁引发故障的问题浮出水面——连接中断。尤其是在运行像 VibeThinker-1.5B-APP 这类专精于数学证明和算法编程的小参数模型时&#xff0c;用户提交一道HMMT级…

作者头像 李华