
🔥小叶-duck:个人主页
❄️个人专栏:《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》
《Linux操作系统从入门到实践》《Qt从入门到实践》
《算法题讲解指南》--优选算法
《算法题讲解指南》--递归、搜索与回溯算法
《算法题讲解指南》--动态规划算法
✨未择之路,不须回头
已择之路,纵是荆棘遍野,亦作花海遨游
目录
[二、Qt 框架核心认知:为什么它能成为跨平台首选?](#二、Qt 框架核心认知:为什么它能成为跨平台首选?)
[2.1 什么是 Qt?](#2.1 什么是 Qt?)
[2.2 Qt 的核心优势](#2.2 Qt 的核心优势)
[2.3 典型应用案例](#2.3 典型应用案例)
[三、Qt 环境搭建:Windows/Linux 通用避坑指南](#三、Qt 环境搭建:Windows/Linux 通用避坑指南)
[3.1 Qt 的开发工具概述](#3.1 Qt 的开发工具概述)
[3.2 Qt SDK 的下载和安装](#3.2 Qt SDK 的下载和安装)
[3.2.1 Qt SDK的下载](#3.2.1 Qt SDK的下载)
[3.2.2 Qt SDK 的安装](#3.2.2 Qt SDK 的安装)
[3.2.3 Qt 环境变量配置](#3.2.3 Qt 环境变量配置)
[三. Qt Creator 使用详解](#三. Qt Creator 使用详解)
[3.1 使用 Qt Creator 新建项目](#3.1 使用 Qt Creator 新建项目)
[3.1.1 新建项目](#3.1.1 新建项目)
[3.1.2 选择项目模版](#3.1.2 选择项目模版)
[3.1.3 选择项目路径](#3.1.3 选择项目路径)
[3.1.4 选择构建系统](#3.1.4 选择构建系统)
[3.1.5 填写类信息设置界面](#3.1.5 填写类信息设置界面)
[3.1.6 选择 Qt 套件](#3.1.6 选择 Qt 套件)
[3.1.7 选择版本控制系统](#3.1.7 选择版本控制系统)
[3.2 Qt Creator 界面布局(核心区域)](#3.2 Qt Creator 界面布局(核心区域))
[3.3 核心模式详解(初学者须知)](#3.3 核心模式详解(初学者须知))
[3.4 项目核心文件解析](#3.4 项目核心文件解析)
[3.4.1 .pro 文件](#3.4.1 .pro 文件)
[3.4.2 main.cpp(程序入口文件,包含main函数)](#3.4.2 main.cpp(程序入口文件,包含main函数))
[3.4.3 widget.h/.cpp(窗口类的头文件和源文件,实现窗口功能逻辑)](#3.4.3 widget.h/.cpp(窗口类的头文件和源文件,实现窗口功能逻辑))
[3.4.4 widget.ui(UI 设计文件:XML 格式,可视化设计的界面信息存储于此,无需手动编辑)](#3.4.4 widget.ui(UI 设计文件:XML 格式,可视化设计的界面信息存储于此,无需手动编辑))
[3.4.5 编译运行项目(产生的一些中间文件)](#3.4.5 编译运行项目(产生的一些中间文件))
[四、Qt 开发核心注意事项(初学者避坑)](#四、Qt 开发核心注意事项(初学者避坑))
前言
Qt 作为业内公认的跨平台 GUI 开发主流框架,依托一套代码即可适配多系统运行 的核心能力,广泛应用于桌面软件、嵌入式终端、车载交互系统等多个开发场景。对刚接触 Qt 的开发者来说,入门 Qt 的关键第一步是 "摸清框架核心 + 搞定环境搭建 + 熟悉开发工具"------这三项基础工作看似简单,却直接影响后续项目开发效率与调试体验。本文将围绕 Qt 的核心竞争力、Windows 与 Linux 通用的跨平台环境部署、Qt Creator 开发工具详解展开讲解,助力开发者快速搭建 Qt 开发知识体系,为后续 UI 设计和功能开发铺路。
一、Qt的历史背景




二、Qt 框架核心认知:为什么它能成为跨平台首选?
2.1 什么是 Qt?
Qt是一个跨平台的C++图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能,不仅提供丰富的 GUI 组件(按钮、标签、表格等),还集成了网络、数据库、多媒体、线程等核心模块。它是完全面向对象的,很容易扩展。Qt为开发者提供了一种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用C++语言进行高级开发。它的核心优势是 "跨平台兼容性",一套代码可直接运行在 Windows、Linux、macOS、Android、iOS 等主流系统,无需针对不同平台重复开发。

2.2 Qt 的核心优势
- 跨平台无差异:底层自动适配不同系统的 API,开发者无需关注平台细节;
- 开发模式灵活:支持可视化 UI 拖拽设计 + 纯代码开发,兼顾新手和高级开发者;
- 生态完善:内置海量组件和工具,覆盖从简单桌面应用到复杂嵌入式系统的全场景;
- 内存管理友好:通过 "对象树" 机制自动管理内存,减少内存泄漏风险(半自动的垃圾回收,能够简化内存释放,也能够尽可能小的影响程序的运行效率);
- 就业前景广阔:嵌入式、车载、工业控制、桌面应用等领域需求旺盛,薪资待遇优厚。
2.3 典型应用案例
- 办公软件:WPS Office(跨平台界面核心基于 Qt 开发);
- 通讯工具:Skype(全球知名的即时通讯软件);
- 多媒体工具:VLC 播放器(跨平台影音播放神器);
- 开发工具:VirtualBox 虚拟机(开源虚拟机软件);
- 嵌入式设备:车载中控系统、智能家居控制面板、工业控制终端。


三、Qt 环境搭建:Windows/Linux 通用避坑指南
3.1 Qt 的开发工具概述
Qt 支持多种开发工具,其中比较常用的开发工具有:Qt Creator,Visual Studio,Eclipse
- Qt Creator 是一个轻量级的跨平台集成开发环境(IDE),专为使用 Qt 框架进行应用开发程序开发而设计。它是一个功能强大,易于使用,快速且高效的工具,被广泛用于编写各种类型的应用程序,如桌面应用程序,移动应用程序和嵌入式系统等。
Qt Creator 提供了一个可视化的界面设计器和代码编辑器,可以帮助开发者更快便捷地创建复杂的用户界面和处理各种事件。它包含了调试工具,版本控制工具,自动完成和智能提示等功能,以及支持多语言和跨平台的开发环境。 - Visual Studio 是由微软公司开发的集成开发环境(IDE)。它可以用开发多种类型的应用程序。包括Windows 桌面应用程序,Web应用程序,移动应用程序,游戏等。Visual Studio 提供了丰富的开发工具和功能,包括代码和编辑器,调试器,自动完成,代码重构,版本控制等等。它支持多种编程语言,如:C++,C#,Visual Basic,F#,Python等。Visua Studio 还可以与其他开发工具和服务集成,如 Azure云服务,GitHub,Jenkins等。
- Eclipse 是著名的跨平台的自由集成开发环境(IDE)。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C++ 和 Python 的开发工具。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。Qt 框架可以与 Eclipse 集成,使开发者可以使用 Eclipse 的强大功能来开发 Qt 应用程序。

我们后续主要使用 Qt Creator 来进行开发学习
3.2 Qt SDK 的下载和安装
3.2.1 Qt SDK的下载
- Qt 下载官网: https://download.qt.io/archive/qt/
- 国内清华源: https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/
进入官网的下载界面,按照下面所示的流程来下载安装对应版本即可。
1、打开官网,进入下图所示界面

2、选择需要下载的版本;(对Qt的讲解我们以5.14版本为例,所选具体版本为:5.14.2)

3、选择 Windows 桌面应用程序

3.2.2 Qt SDK 的安装
1、找到下载的文件并双击;
注意:在双击之前先断网,否则需要我们注册 Qt 账号登录后才能进入下一步安装;如果不断网的话就需要注册,注册需要用过注册邮箱点进对应链接跳转按照流程进程注册确认,这里就不演示了。

2、双击之后进入如下界面:

3、选择安装路径时不能出现中文路径,否则即使安装上也无法使用;

4、选择安装组件;这里我们安装的是 Qt Creator。如果磁盘空间够用可以全选,但是如果不够的话我们选必选的三个就行。

5、选择部分组件;说明:其他未安装的组件在使用时可以另行添加;


6、同意安装协议;

后续一直下一步,然后安装就行了
3.2.3 Qt 环境变量配置
1、找到 Qt 的安装路径,复制 "bin" 路径;

2、编辑系统环境变量 -> 高级 -> 环境变量 -> 配置环境变量

3、编辑 -> 新建 -> 填入复制好的 bin 路径 -> 确定


4、注意:在关掉所有窗口时,一定要点击 "确定",否则上述配置无效。

为什么要设置环境变量
- 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序将要使用到的信息。
- 例如 Windows 和 DOS 操作系统的 path 环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到 path 中指定的路径去找。
- 在 Windows 上设置 Qt 的环境变量是为了能够在命令行或其他应用程序中直接访问 Qt 相关的命令工具。
介绍一下 Qt SDK 中的关键工具:


三. Qt Creator 使用详解
Qt Creator 是 Qt 官方集成开发环境(IDE),集代码编辑、UI 设计、调试、构建于一体,熟悉它的核心功能能大幅提升开发效率:
3.1 使用 Qt Creator 新建项目
3.1.1 新建项目
打开 Qt Creator ,在菜单栏中选中:"文件" -> "新建文件或者项目";或者使用快捷键:Ctrl + n;或者在欢迎模式下直接点击:"new";

3.1.2 选择项目模版
弹出如下对话框:

新建项目对话框里有五类项目模版:
| 项目模板 | 说明 |
|---|---|
| Application | Qt 应用程序,包括普通窗体程序和 QtQuick 程序 |
| Library | 可以创建动态库、静态库以及 Qt Quick 扩展插件、QtCreator 自身插件 |
| 其他项目 | 可以创建单元测试项目、Qt4 设计师自定义控件、子目录项目等 |
| Non‑Qt‑Project | 非 Qt 项目。可以创建纯 C 或纯 C++ 项目 |
| Import Project | 导入项目。从版本控制系统管理的软件项目导入旧的项目 |
常用模板说明 :
常用的只有第一类 Application。选择它,在右侧会看到 Qt 应用程序的五个子模板:
- Qt Widgets Application:普通窗体模板,传统基于部件的窗体界面程序。
- Qt Console Application:Qt 控制台应用程序。因为 Qt 主要用于图形界面设计,这个控制台项目模板基本不用。
- Qt for Python:在Python下用 LGPL 的许可来开发源 Qt 软件。
- Qt Quick Application:Qt 提供的一种高级用户界面技术,使用它可以方便快速的为移动以及嵌入式设备开发流畅美观的用户界面。Qt Quick 模块是开发 QML 应用的标准库,提供了使用 QML 创建用户界面所需的一切,包括可视化、交互、动画、模型、视图、粒子效果以及着色效果等。

选择不同的项目模板, Qt Creator 就会在后续项目创建好了之后生成不同的基础代码
3.1.3 选择项目路径
给 Qt 项目命令及选择保存项目的路径,注意:工程名和路径名中不能有中文;

3.1.4 选择构建系统
选择 Qt 项目的构建系统,使用默认的 "qmake" 即可;

Qt 主要构建工具对比:
| 构建工具 | 核心特点与说明 |
|---|---|
| qmake | Qt 原生的构建工具,用于自动生成跨平台的 makefile 文件。其项目配置文件的后缀名为 .pro。 |
| CMake | 跨平台的第三方构建工具。它本身不直接编译 ,而是生成编译器所需的构建系统文件(如 Makefile 或 Visual Studio 项目文件)。 |
| Qbs | Qt 构建套件,新一代构建工具,宣称比 qmake 编译速度更快。它不绑定 Qt 版本,通过高级项目描述直接生成依赖表,而非交给 make 工具。官方声明:因市场原因,Qt 已弃用 Qbs。 |

对于 Qt 用户来说,qmake 仍是当前使用最广泛的构建工具,CMake 次之。Qbs 已被官方弃用。
3.1.5 填写类信息设置界面
我们先选择 Qwidget 就行;

Qt 窗体程序基类选择:
| 基类 | 说明与用途 |
|---|---|
| QMainWindow | 主窗口类 ,适用于复杂的应用程序。除了中央客户区,还预设了菜单栏、工具栏、状态栏以及多个可停靠的工具对话框等框架结构。 |
| QWidget | 最简单、最基本的窗体类,可以作为独立的空白窗口使用,也可以作为容器在其中放置多个控件来实现程序功能。是 Qt 中所有可视化组件的基类。 |
| QDialog | 对话框类,通常用于弹窗,也可作为主界面。它继承自 QWidget,并增加了模态显示、返回值等适合对话框交互的特定功能。 |

上述三个类之间的关系如下图:

3.1.6 选择 Qt 套件
中间还有一步选择语言和翻译文件,我们先不管,暂时用不上。
然后这里有些朋友只会显示一项,就是图中框出来的;而有些朋友就会我的一样有很多项,原因就是最开始安装的时候配置了多个 Qt 套件,但不管是哪种我们都只需要选择图中框起来的 "Desktop Qt 5.14.2 MinGW 64-bit "
Qt 套件是指 Qt 程序从编译链接到运行环境的全部工具和 Qt 类库的集合,对于 MinGW 版本 Qt 程序生成和调试,至少需要 MinGW 中的编译器 g++(自动调用链接器),g++ 配套的基础库,调试器 gdb 还有使用 MinGW 环境编译而成的 Qt 类库自身。

3.1.7 选择版本控制系统
点击 "下一步" 进入项目管理界面;在项目管理界面可以设置作为子项目,以及加入版本控制系统管理。这两个功能暂时用不到,都用默认的**<None>**,然后点击 "完成"。

如果想把代码提交到码云或者github,可以在此处选择 git 作为版本控制系统。
最终效果:
通过上述的步骤,就可以完成项目的创建了,后续大家熟练之后创建一个项目其实还是很快的。项目创建完之后,Qt Creator 会直接进入代码编辑模式,可以看到类型下图界面:

3.2 Qt Creator 界面布局(核心区域)
打开 Qt Creator 后,默认进入 "欢迎模式",核心区域分为 5 部分,新手需重点关注:
- 模式选择栏(左侧竖排):包含 "欢迎""编辑""设计""调试""项目""帮助" 6 种模式,切换不同开发场景;
- 左边栏(编辑模式左侧):显示当前项目的文件结构,包含源文件(.cpp)、头文件(.h)、UI 文件(.ui)、项目配置文件(.pro);

在编辑模式下,左边竖排的两个窗口叫做"边栏"。1是项目文件管理窗口 ,2是打开文件列表窗口 。在QtCreator菜单"控件"----> "ShowLeft Sidebar",或者使用快捷键:"Alt +0" 可以控制边栏的
显示和隐藏。
边栏里的窗口数目可以增加,边栏子窗口标题栏有一排小按钮,最右边的是关闭按钮,倒数第二个是增加分栏按钮,可以添加多个边栏子窗口。

边栏子窗口标题栏第一个控件是组合框,可以选择该子窗口的功能视图类型,目前可以选择8个视图类型:

| 视图类型 | 说明 |
|---|---|
| 项目 | 即项目文件管理视图,可以选择项目里的文件进行编辑,包括 pro 文件也可以手动编辑。 |
| 打开文档 | 当前已经打开的文件列表,文件名右边如果有 * 号,是该文件被修改了但尚未保存。 |
| 书签 | 右击代码编辑器行号位置,看到 "切换书签",可以给代码行添加书签,方便跳转到该位置。 |
| 文件系统 | 相当于系统里的文件资源管理器,可以查看项目文件夹在磁盘里的实际文件列表。 |
| 类视图 | 可以查看项目里包含的类及相应源代码文件里的成员函数、成员变量。 |
| Git Branches | 查看当前分支 |
| 大纲 | 编辑器所显示的当前文件的大纲列表,如名字空间、类名、成员函数、成员变量等。 |
| Tests | 测试 |
| 类型层次 | 当前项目包含的类及其基类、派生类列表。 |
| Include Hierarchy | 包含视图,显示当前项目里 .h、.cpp 以及 Qt 类库头文件之间的包含关系。 |
- 代码编辑区(中间):支持语法高亮、代码补全、自动对齐,快捷键与 VS、Clion 兼容;

1和2:导航按钮"返回"和"前进",这与网页浏览器的前进和后退按钮类似,可以在之前浏览的多个代码文件或一个代码文件里多个位置之间快速切换。
3:标识当前显示的文件是只读还是可写,一般都是可写的。
4:文件类型图标,当前显示文件的类型,这个控件其实是一个菜单按钮,点击可以弹出丰富的文件处理功能菜单。
5:打开的文件名,可以在多个打开的文件之间选择切换,与边栏的"打开文档"视图是对应的。
6:关闭当前显示的文档。
7:为当前显示的文件添加额外的C++预处理指令,一般用不着。
8:选择符号,可以在当前显示的文件里多个函数、类、成员变量等之前快速切换,与边栏"大纲"视图是对应的。
9:编辑区光标的行号和列号。
10:代码编辑区分栏,可以增加多个编辑器窗口,显示多个打开的文档或显示较大源码文件的多个位置。
行首区: 主要用来显示代码行号,以及调试断点标志和代码书签标志。右击行首区可以弹出右键菜单,菜单里可以切换书签、编辑书签以及设置或取消断点。
同一行是既可以打断点也可以设置书签的,二者不冲突,其实它们根本就没关系。单击行号前面的浅灰色空白区可以直接打断点,再次单击可以取消断点,另外也可以用快捷键F9设置或取消断点。代码书签一般用右键菜单来设置,也可以用快捷键Ctrl+M设置或取消书签。
**编辑区:**写代码的区域。
- UI 设计区(设计模式):可视化拖拽 UI 组件的核心区域,所见即所得;
双击widget.ui文件,QtCreator会自动进入设计模式,可以对图形界面进行可视化编辑:

1:组件选择窗口 。组件选择窗口分为多个组,如Layouts、Buttons、DisplayWidgets等,界面设计的常见组件都可以在组件选择窗口中找到。
2:UI设计窗口 。如果要将某个组件放置到该窗口上时,从组件选择窗口上拖放一个组件到窗体上即可。
3:动作编辑窗口 。动作编辑窗口包括Action Editor 以及 Signals和 Slots编辑器。Action Editor主要是用来新建Action,并且通过拖拽的动作,将新建好的Action添加到菜单栏和工具栏上;Signals和Slots编辑器用于可视化地进行信号与槽的关联。
4:对象浏览窗口 。用树状视图显示窗体上各组件之间的布局包含关系,视图有两列,显示每个组件的对象名称(ObjectName)和类名称。
5:属性设置窗口。显示某个选中的组件或窗体的各种属性及其取值,可以在属性设置窗口里修改这些属性的值。
- 输出窗格(底部):显示编译日志、调试信息、应用程序输出,排查错误的关键。
3.3 核心模式详解(初学者须知)
(1)欢迎模式
- 核心功能:新建项目、打开已有项目、浏览 Qt 示例、查看教程;
- 实用入口:"示例" 中包含上千个官方 demo,覆盖组件使用、功能实现等场景,可直接编译运行学习。
(2)编辑模式
- 核心功能:编写 C++ 代码、修改头文件、编辑项目配置文件(.pro);
- 实用技巧:
- 快捷键 Ctrl+/:快速注释 / 取消注释代码;
- 快捷键 F4:在.h 头文件和.cpp 源文件之间快速切换;
- 代码补全:输入类名 / 函数名时,按 Tab 可快速补全。
(3)设计模式
- 核心功能:可视化设计 UI 界面,无需手动编写 UI 代码;
- 核心区域:
- 快捷键 Ctrl+/:快速注释 / 取消注释代码;
- UI 设计区(中间):预览界面效果,可调整组件位置和大小;
- 属性设置区(右侧):修改组件属性,如text(显示文本)、font(字体)、geometry(位置和大小)。
(4)项目模式
- 核心功能:配置项目构建参数,如选择编译器、构建类型(Debug/Release);
- 关键配置:
- 构建类型:Debug 模式用于调试(保留符号信息),Release 模式用于发布(代码优化,体积更小);
- 套件选择:默认选择安装时配置的套件(如 Desktop Qt 5.14.2 MinGW 64-bit),无需手动修改。
3.4 项目核心文件解析
新建项目后,我们需要重点理解以下文件的作用,为后续开发打基础:
3.4.1 .pro 文件
工程新建好之后,在工程目录列表中有一个后缀为 "pro" 的文件,".pro"文件就是工程文件(project) ,它是 qmake 自动生成的用于生产makefile的配置文件。
核心配置项:
QT += core gui widgets:引入核心模块(core 核心功能、gui 图形界面、widgets 组件库);TARGET = FirstQtApp:生成的可执行程序名称;SOURCES += main.cpp widget.cpp:项目源文件列表;HEADERS += widget.h:项目头文件列表;FORMS += widget.ui:UI 设计文件列表;


3.4.2 main.cpp(程序入口文件,包含main函数)
核心逻辑:
QApplication a(argc, argv):创建应用程序对象(全项目唯一);Widget w:创建窗口对象;w.show():显示窗口;return a.exec():进入应用程序事件循环(等待用户操作,如点击按钮);


3.4.3 widget.h/.cpp(窗口类的头文件和源文件,实现窗口功能逻辑)
widget.h:

widget.cpp:

3.4.4 widget.ui(UI 设计文件:XML 格式,可视化设计的界面信息存储于此,无需手动编辑)


3.4.5 编译运行项目(产生的一些中间文件)



四、Qt 开发核心注意事项(初学者避坑)
- 命名规范 :Qt 偏好驼峰命名法,类名首字母大写(如
MyWidget),函数名 / 变量名首字母小写(如setUserName); - 路径禁忌:项目路径、文件名、变量名均不可包含中文,否则会导致编译失败或运行异常;
- 内存管理 :Qt 通过 "对象树" 机制管理内存,创建组件时指定父对象(如
QPushButton *btn = new QPushButton(this)),父对象析构时会自动析构子对象,无需手动delete,后续会学到的; - 帮助文档使用 :光标选中类名 / 函数名,按
F1可快速打开官方文档,查看用法和示例(优先看英文文档,准确性更高); - 快捷键推荐 :
Ctrl+B:构建项目(编译);Ctrl+R:运行项目;F5:调试项目;Ctrl+I:代码自动对齐;Ctrl+F:查找代码。
结束语
Qt 入门的关键在于搭建好开发环境、熟练掌握开发工具 。本文涵盖 Qt 框架基础认知、跨平台环境部署,到 Qt Creator 实操、项目文件解析,帮你搭建起完整的入门知识体系。后面需重点学习UI 控件 、信号与槽核心机制 ,实现按钮交互 、文本展示等基础功能,快速开发简单桌面或嵌入式界面。夯实基础后,再逐步拓展网络、数据库、多线程等进阶能力,稳步提升 Qt 开发水平。希望对大家学习Qt能有所收获!