Qt简介
Qt是一个跨平台的C++图形用户界面应用程序开发框架,由挪威Trolltech公司于1991年开发,现由The Qt Company(前身为Digia的Qt事业部)维护。它广泛应用于桌面、移动和嵌入式系统开发,支持Windows、Linux、macOS、Android、iOS等主流操作系统。
Qt开发环境
1. 开发套件组成
Qt开发套件包含:
-
Qt库(核心框架)
-
Qt Creator IDE
-
编译器工具链
-
调试器
-
构建工具(qmake/CMake)
2. 集成开发环境(IDE)选择
Qt Creator(推荐)
-
Qt官方专用IDE,开箱即用
-
内置可视化设计器(Qt Designer/Qt Quick Designer)
-
完美支持Qt特性,无需额外配置
-
适合初学者和Qt专业开发者
-
注意:社区版可能存在一些小问题,但更新频繁
Visual Studio
-
功能强大,适合大型C++项目
-
需安装"Qt Visual Studio Tools"扩展(微软维护)
-
商业项目中较常见,特别是Windows平台项目
-
有预编译包简化配置
其他IDE
-
CLion:通过CMake支持Qt开发
-
VSCode:通过插件支持,配置较复杂
-
Eclipse:市场份额下降,仍有部分嵌入式开发者使用
3. 环境安装建议
初学者推荐方案:
-
下载Qt在线安装器(Qt Online Installer)
-
选择最新稳定版本
-
组件选择:
-
Qt Creator(必选)
-
MinGW编译器(Windows)
-
Qt核心模块
-
示例和文档
-
Windows用户注意:
-
MinGW:开源GCC编译器,适合学习和小项目
-
MSVC:微软编译器,性能更好,适合商业项目
-
可同时安装多个编译器版本
安装验证:
安装完成后,打开Qt Creator,创建默认的Widgets Application项目,能成功编译运行即表示环境配置正确。
4. 开发工作流程
-
创建项目:Qt Creator向导创建Qt Widgets或Qt Quick项目
-
界面设计:使用设计器拖拽或编写QML代码
-
编写逻辑:C++业务逻辑实现
-
构建运行:一键编译调试
-
发布部署:Qt自带部署工具
第一个程序
设计流程
在我们写第一个QT程序之前,我们先来熟悉一下QT开发的流程:
1.新建项目
点击New Project

2.选择模板

在这里我选择Qt Widgets Application作为模板。Qt Widgets Application是 Qt 框架中用于开发传统桌面图形界面应用程序的模板:
1.它基于 Qt Widgets 框架(Qt 的经典 UI 组件库)
2.支持通过拖放控件(如按钮、文本框)快速构建界面(使用 Qt Designer 可视化设计工具)
3.自动生成包含窗口的界面文件(.ui)和 C++ 代码文件(.cpp/.h)
4.采用界面与业务逻辑分离的设计模式,便于初学者理解和使用
为什么推荐初学者优先选择这个模板?
- 成熟稳定:作为 Qt 最成熟的开发模板,拥有最丰富的学习资源(教程多,资料多)
- 原生体验:开发的应用程序能完美适配 Windows/macOS/Linux 系统风格(可移植)
- 学习门槛低:
- 可视化界面设计,减少 UI 代码编写
- C++ 业务逻辑清晰直观
- 特别适合开发办公工具、本地客户端等传统桌面软件
Qt Quick Application:用 "Qt Quick/QML" 框架,适合做炫酷的现代界面(比如手机 App、动画多的桌面端),但需要学 QML 语言,入门稍复杂。
Qt Console Application:无界面的控制台程序(只有命令行窗口),适合写纯逻辑的工具(比如后台脚本)。
3.命名,路径

在Qt Creator中创建新项目时,命名需遵循以下规范:
- 仅允许使用:字母、数字和下划线
- 必须以字母或下划线开头
- 禁止包含:空格、中文字符、特殊符号及连字符
创建路径时,路径名不要有中文。
4.构建系统选择

1. 新手推荐:qmake
优势说明: qmake作为Qt官方构建工具,与Qt Creator开发环境完美兼容。创建项目后仅需点击"运行"按钮即可自动完成编译过程,完全免除了复杂的配置工作。其配置文件(.pro)采用简洁直观的语法结构,特别适合作为Qt初学者的首选构建方案。
2. 其他选项适用场景
CMake :
跨平台通用构建系统,适用于大型项目 或多语言混合开发 (如Qt + C++ + Python)。虽然功能强大,但配置文件(CMakeLists.txt)相对复杂,建议新手暂缓使用。
Qbs :
Qt推出的新一代构建工具,编译速度优于qmake。但目前生态成熟度不及qmake和CMake,主流项目仍以前两者为主,而且用的人很少公司也没有怎么维护了。
总结:新手直接选择qmake即可,点击"下一步"继续。
5.父类选择

在Base Class(父类)选项中,需要选择主窗口的Qt Widgets基类类型。不同基类提供不同的窗口功能特性,具体说明如下:
QMainWindow详解
- 带有菜单栏、工具栏和状态栏的主窗口基类
- 适用于开发完整的桌面应用程序(如文本编辑器、浏览器等需要完整菜单系统的程序)
QWidget
- 作为所有Qt控件的基类
- 提供一个空白窗口(无菜单/工具栏)
- 适合创建简单弹窗或自定义小控件
QDialog
- 专为对话框设计的基类
- 适用于临时交互窗口(如登录窗口、设置对话框)
- 默认以模态方式运行(会阻止主窗口操作)
结构对比
-
QMainWindow包含:
- 菜单栏(QMenuBar)
- 工具栏(QToolBar)
- 停靠窗口(QDockWidget)
- 状态栏(QStatusBar)
- 中央部件(Central Widget)
-
QWidget仅是一个空白画布,可以手动添加所需功能(更好上手)
学习路径建议
- 从QWidget开始:掌握基本布局和信号槽机制
- 学习QDialog:理解模态/非模态对话框
- 进阶QMainWindow:构建完整应用程序框架
对于初学者,建议直接选择QWidget作为父类进行基础学习。我们在这里选择QWidget,作为父类。

QT 基类一经选定,系统便会自动生成对应的头文件(.h)和源文件(.cpp),并预填充基础代码框架。对于初次接触 C++框架的开发者而言,这种自动化功能尤为便利 ----它免去了手动编写所有文件的繁琐过程,大大提升了开发效率。
6.国际化和本地化

我们保持默认就行。
7.编译环境选择

编译器我们选择MinGW(GCC for Windows) 安装的什么版本就选什么版本(我的是6.10.1)。如果以后要使用Visual Studio来开发可以选Microsoft Visual C++ 2022 ,它是微软官方推出的专业编译器(VS用的就是这个)。
Debug
包含完整调试信息,执行效率较低,支持调试功能,适用于开发阶段,生成的文件体积较大。
Release
经过优化编译,运行效率高,不支持调试,适用于产品发布,生成的文件体积较小。
性能分析版本Profile
包含性能分析数据,主要用于性能优化,初学者可暂不关注。
我们在这里选择Debug就行。
8.项目结构和设置版本控制

这一页是项目创建的总结页面,我们默认就行。
9.完成

到这里我们的项目就创建完了。且构建工具帮我们生成.h文件和.cpp文件和部分代码。
实现程序
QT事项程序有两种方式:1.图形化2.纯代码
图形化

双击widget.ui,我们会进入这个面板。

点击左侧的display Widgets中的Label

直接拖动到设计界面

双击就可以标签内容了

点击左下角的运行图标,并等待构建完成。

这样,我们就用QT实现了第一个程序

纯代码实现
关闭所有项目和程序,重复上述步骤创建一个新项目test2。
更改widget.cpp
cpp
#include "widget.h"
#include "ui_widget.h"
#include<QLabel>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QLabel* label = new QLabel(this);//指向父节点
label->setText("hello world!");
}
Widget::~Widget()
{
delete ui;
}
直接运行

这样我们就通过纯代码的方式实现了程序。本文就到这里,下篇文章将解释为什么传this指针,为什么new这个对象没有手动释放内存以及各个文件的内容和联系。