前言:
欢迎来到《Qt》系列课程的第一讲!在当今软件开发领域,跨平台、高效能的工具需求日益增长,而 Qt 作为一款久经考验的跨平台C++框架,凭借其强大的功能、灵活的扩展性和友好的开发体验,成为工业、嵌入式、桌面应用甚至移动开发的热门选择。无论是开发智能家居界面、工业控制软件,还是打造精美的桌面应用程序,Qt都能提供完整的解决方案。
本讲作为系列课程的起点,将专注于 Qt开发环境的搭建。对于任何编程技术而言,一个稳定、高效的环境都是成功的基石。
无论你是刚接触Qt的新手,还是希望系统化巩固知识的开发者,本讲都将为你扫清入门障碍,为后续的深入学习奠定基础。现在,让我们开始行动吧!
目录
前言:
一、下载QTSDK
1.1 各种常见工具介绍
1.2 下载QTSDK
1.3Qt SDK 的安装
1.4 验证安装是否成功
1.5 Qt 环境变量配置
二、认识一下使用工具
三、使用QTCreate创建项目
3.1 找到右上角的文件
3.2 选择合适的模板
3.3 正式搭建项目环境
1)选好创建路径与名称
2)选择构建系统
4)填写类信息设置界⾯
5)语言问题
6)选择 Qt 套件
7)选择版本控制系统
3.4 观察项目运行结果
四、项目代码的讲解
4.1 widget.h介绍
1. 头文件保护(Header Guard)
2.Q_OBJECT 宏与信号槽机制
3. Qt 类的头文件包含规则
4. Qt 对象树(Object Tree)
4.2 widget.cpp
4.3 widget.ui
总结:
一、下载QTSDK
Qt ⽀持多种开发⼯具,其中⽐较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse.
1.1 各种常见工具介绍
1、Qt Creator Qt Creator 是⼀个轻量级的跨平台集成开发环境(IDE),专为使⽤ Qt 框架进⾏应⽤程序开发⽽设 计。(******)
它是⼀个功能强⼤、易于使⽤、快速且⾼效的⼯具,被⼴泛⽤于编写各种类型的应⽤程序,如桌⾯应 ⽤程序、移动应⽤程序和嵌⼊式系统等。
Qt Creator 提供了⼀个可视化的界⾯设计器和代码编辑器,可以帮助开发者更快捷地创建复杂的⽤⼾ 界⾯和处理各种事件。
它还包含了调试⼯具、版本控制⼯具、⾃动完成和智能提⽰等功能,以及⽀持多语⾔和跨平台的开发 环境。
Qt Creator 的主要特点包括:
• 紧密集成的 Qt 框架:Qt Creator 专⻔为 Qt 开发⽽设计,因此它与 Qt 框架集成得⾮常紧密,使开 发者可以更容易地管理和部署他们的应⽤程序。
• 强⼤的编辑器:Qt Creator 具有⼀些先进的编辑器功能,如语法⾼亮、代码折叠、智能提⽰、⾃动 完成和代码重构。
• 集成的调试器:Qt Creator 内置了调试器,允许开发⼈员在代码中设置断点以及检查变量、堆栈和 调⽤树等信息。
• ⾼效的构建系统:Qt Creator 提供了⼀个⾼效的构建系统,可以⾃动构建和部署应⽤程序,同时⽀ 持使⽤不同的编译器和平台。
• 可视化界⾯设计器:Qt Creator 具有⼀个可视化界⾯设计器,它允许开发⼈员在没有编写代码的情 况下创建复杂的⽤⼾界⾯。
• 多语⾔⽀持:Qt Creator ⽀持多种编程语⾔,包括 C++、QML、JavaScript 等。
总⽽⾔之,Qt Creator 是⼀个功能⻬全、易于使⽤且⾼效的跨平台 IDE,适⽤于各种类型的应⽤程序开 发,特别是那些使⽤ Qt 框架的开发者。
后续的博客中使⽤ Qt Creator 开发 Qt 程序.
2、Visual Studio Visual Studio 是由微软公司开发的集成开发环境(IDE)。
它可以⽤来开发多种类型的应⽤程序。包括 Windows 桌⾯应⽤程序、Web应⽤程序、移动应⽤程序、游戏等。
Visual Studio 提供了丰富的开发⼯ 具和功能,包括代码编辑器、调试器、⾃动完成、代码重构、版本控制等等。
它⽀持多种编程语⾔, 如:C++、C#、Visual Basic、F#、Python等。Visual Studio 还可以与其他开发⼯具和服务集成,如 Azure 云服务、GitHub、Jenkins等。
Visual Studio 具有以下⼀些主要特点:
• 多语⾔⽀持:Visual Studio ⽀持多种编程语⾔,包括 C++、C#、Visual Basic、F#、Python、 JavaScript 等;
• 丰富的⼯具集:VS 提供了各种开发⼯具,包括代码编辑器、调试器、代码分析⼯具等,以提⾼开 发⼈员的效率;
• 可视化设计:VS提供了可视化的设计⼯具,如窗体设计器、WPF 设计器等,使开发⼈员可以直观 地设计⽤⼾界⾯;
• 跨平台开发:VS ⽀持跨平台开发,可以开发适⽤于 Windows、Linux 和 macOS 等多个平台的应 ⽤程序;
• 集成的调试器:VS 集成了强⼤的调试器,可以进⾏代码的单步调试、断点调试等操作来帮助开发 ⼈员查找和修复错误;
• 丰富的扩展性:VS 可以通过安装扩展来扩展其功能,开发⼈员可以根据⾃⼰的需求选择并安装适 合的扩展。
3、Eclipse Eclipse 是著名的跨平台的⾃由集成开发环境(IDE)。
最初主要⽤来 Java 语⾔开发,但是⽬前亦有⼈ 通过插件使其作为其他计算机语⾔⽐如 C++ 和 Python 的开发⼯具。
Eclipse 的本⾝只是⼀个框架平 台,但是众多插件的⽀持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。
许多软件 开发商以 Eclipse 为框架开发⾃⼰的 IDE。
Qt 框架可以与 Eclipse 集成,使开发者可以使⽤ Eclipse 的 强⼤功能来开发 Qt 应⽤程序。
1.2 下载QTSDK
进入QT的官网下载就好。
Qt 下载官⽹:http://download.qt.io/archive/qt/
国内清华源: https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/
进⼊官⽹,进⾏相应的系统版本下载即可。
1.3Qt SDK 的安装
1、找到下载的⽂件并双击;
注意:在双击之前先断⽹,否则需要我们注册 Qt 账号登录后才能进⼊下 ⼀步安装;
2、双击之后进⼊如下界⾯:
3、选择安装路径时不能出现中⽂路径,否则即使安装上也⽆法使⽤;
剩下的大家直接按照下图所示的组件安装就好了。
剩下的就是正常的安装过程了大家直接next就好。
1.4 验证安装是否成功
验证 Qt SDK 安装是否成功
1、双击打开 Qt Creator ⼯具,并进⼊到 "欢迎模式" 下的 "⽰例" 界⾯;
打开如果出现上面的画面证明QTCreater的安装是成功的。
1.5 Qt 环境变量配置
这步主要是为了解决一些同学在下载完后,使用QT创建项目运行的时候,总是报警,说出现取少某某库的情况。
1、找到Qt的安装路径,复制 "bin" 路径;
2、"此电脑" ------> ⿏标右键, "属性" ------> "⾼级系统设置" ------> "环境变量"
3、"环境变量" ------> 找到path,填⼊ "bin" 路径 ------> "确定" ;
4、注意:在关掉所有窗⼝时,⼀定要点击 "确定" ,否则上述配置⽆效。
- 为什么要设置环境变量 环境变量是在操作系统中⼀个具有特定名字的对象,它包含了⼀个或者多个应⽤程序将要使 ⽤到的信息。
- 例如Windows 和 DOS 操作系统中的 path 环境变量,当要求系统运⾏⼀个程序⽽没有告诉它 程序所在的完整路径时,系统除了在当前⽬录下⾯寻找此程序外,还会到 path 中指定的路径 去找。
- 在 Windows 上设置 Qt 的环境变量是为了能够在命令⾏或其他应⽤程序中直接访问 Qt 相关 的命令和⼯具。
二、认识一下使用工具
这是我们主要使用的几个工具,但是大部分都被集成到了QTCreate里面了。
-
Qt 官方离线文档
-
提供离线版英文官方文档(主要参考)。
-
虽有非官方中文文档,但建议优先阅读英文文档。
-
-
Qt 设计师(Qt Designer)
-
图形化界面设计工具,支持拖拽控件快速生成界面。
-
常与 Qt Creator 配合使用。
-
-
Qt 语言家(Qt Linguist)【目前在学习阶段没必要关心】
-
国际化支持工具,用于多语言适配。
-
可创建语言配置文件,集中管理界面文字的多语言翻译(如中、英、法语等)。
-
通过 API 实现“一键切换语言”,适配不同国家/地区的需求。
-
-
Qt 集成开发工具(Qt Creator)
学习 Qt 过程中主要使用的开发环境。
三、使用QTCreate创建项目
3.1 找到右上角的文件
3.2 选择合适的模板
我们是初学者,所以直接选择第一个模板就好了。
当然模板也有不同,下面我们也介绍一下,有兴趣的同学可以查询相关资料。
新建项⽬对话框⾥有五类项⽬模板:
- Application Qt 应⽤程序,包括普通窗体程序和 QtQuick 程序
- Library 可以创建动态库、静态库以及 Qt Quick 扩展插件、QtCreator ⾃⾝插件
- 其他项⽬ 可以创建单元测试项⽬、Qt4 设计师⾃定义控件、⼦⽬录项⽬等
- Non-Qt-Project ⾮ Qt 项⽬。可以创建纯 C 或纯 C++ 项⽬
- Import Project 导⼊项⽬。从版本控制系统管理的软件项⽬导⼊旧的项⽬
常⽤的只有第⼀类 Application,我们选择它。
3.3 正式搭建项目环境
1)选好创建路径与名称
2)选择构建系统
选择 Qt 项⽬的构建系统,使⽤默认的 "qmake" 即可。
Qt 中的构建⼯具有三种可供选择,分别是:qmake、CMake、Qbs,下⾯依次介绍。
- qmake: qmake 是⼀个构建⼯具(build tool),⽤于⾃动⽣成 makefile ⽂件。qmake ⽀持跨平 台构建。qmake 编辑的是⼀个后缀名为 .pro 的⽂件。
- CMake:CMake 是⼀个跨平台的构建⼯具。CMake 本⾝不是⼀个编译器,其实就是⽣成⼀个让编 译器能读懂编译流程的⽂件⼯具。让 CMake ⾃动⽣成构建系统,例如 Makefile 和 Visual Studio 项⽬⽂件。CMake 是⼀个第三⽅⼯具,有⾃⼰的⽂档。
- Qbs:Qbs(Qt Build Suite:Qt构建套件)同 qmake、CMake ⼀样都是构建⼯具。Qbs 号称是新 ⼀代的构建⼯具,⽐ qmake 编译速度更快。Qbs 没有绑定 Qt 版本,它从项⽬⽂件的⾼级项⽬描述 中⽣成⼀个正确的依赖表。⽽传统的 MakeFile ⽣成⼯具如 qmake 和 CMake ,其在⽣成 MakeFile ⽂件后将实际的命令交给 Make ⼯具去执⾏。
- Qt 官⽅声明,因市场原因,弃⽤ Qbs 。对于 Qt ⽤⼾来说,qmake 是当前使⽤最⼴泛的构建⼯具, CMake 其次。
4)填写类信息设置界⾯
对于基类的选择,⽬前有三种基类:
- QMainWindo w 主窗⼝类,⼀般⽤于较为复杂的应⽤程序,除了中央客⼾区界⾯,还包括菜单栏、⼯具栏、 状态栏以及多个可停靠的⼯具对话框等
- QWidget 最简单、最基本的窗体程序,⾥⾯可以放置多个控件实现程序功能
- QDialog 基于对话框的程序,对话框⼀般⽤于弹窗,也可以⽤于主界⾯显⽰。对话框是从QWidget继 承⽽来的,并丰富了⼀些功能,如模态显⽰和返回值等
对于我们目前的学习水平的话,我们可以直接使用最简单的QWidget就好。
5)语言问题
选择语⾔和翻译⽂件 点击 "下⼀步" 进⼊如下界⾯:
此处选择的语⾔是 "汉语", "英语" 这样的语⾔. ⽽不是 "编程语⾔".
由于我们暂时不考虑国际化问题, 直接下⼀步即可.
6)选择 Qt 套件
默认只有第⼀个 "Desktop Qt 5.14.2 MinGW 64-bit",如果安装配置了多个 Qt 套件,就可以都选上。
Qt 套件是指 Qt 程序从编译链接到运⾏环境的全部⼯具和 Qt 类库的集合,对于 MinGW 版本 Qt 程序⽣ 成和调试,⾄少需要 MinGW 中的编译器 g++(⾃动调⽤链接器)、g++ 配套的基础库、调试器 gdb 还 有使⽤ MinGW 环境编译⽽成的 Qt 类库⾃⾝。默认情况下,在上⾯ Kit Selection ⾥选中全部套件。
7)选择版本控制系统
点击 "下⼀步" 进⼊ 项⽬管理界⾯;
在项⽬管理界⾯可以设置作为⼦项⽬,以及加⼊版本控制系统管 理。
这两个功能暂时⽤不到,都⽤默认的 ,然后点击 "完成" 就好了。
3.4 观察项目运行结果
运行结果:应该是弹出一个空白的大框
补充知识:
而我们上面的新创文件之所以运行就有结果,是因为我们在搭建项目的时候,QT就已经内置了一些通用的代码进去了。
四、项目代码的讲解
4.1 widget.h介绍
1. 头文件保护(Header Guard)
首先我们看到头文件 ,这个通过宏定义来防止头文件重复包含,现在更多的是如下的方式。
-
推荐使用
#pragma once
替代传统#ifndef
/#define
方式,确保头文件仅被包含一次
2.Q_OBJECT 宏与信号槽机制
-
Q_OBJECT 是 Qt 内置宏,展开后生成支持信号槽的代码。
-
若类需要使用 信号(Signals) 和 槽(Slots) 机制,必须在类声明中引入此宏。
当然此时大家只需要知道这是一个关于QT的核心机制,后面会有专门的讲解博客的。
3. Qt 类的头文件包含规则
-
Qt 类的头文件名通常与类名一致(如
QWidget
对应<QWidget>
)。 -
某些头文件可能被间接包含(如通过其他头文件引入),无需显式包含。
-
原则:直接使用 Qt 类,若编译报错“未定义”,再手动包含对应头文件。
4. Qt 对象树(Object Tree)
-
数据结构:普通 N 叉树(非二叉树)。
-
特性:
-
一个节点可有多个子节点。
-
子节点自动由父节点管理(生命周期绑定)。
-
-
应用:用于 Qt 对象的内存管理,父子关系通过
setParent()
或构造函数建立。
4.2 widget.cpp
-
ui_widget.h
是 Qt Designer 窗体文件(.ui
)编译后生成的头文件,包含界面布局和控件定义。
这里就是QT为我们生成的界面类的定义。
4.3 widget.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Widget</class><widget class="QWidget" name="Widget"><property name="geometry"><rect><x>0</x><y>0</y><width>800</width><height>600</height></rect></property><property name="windowTitle"><string>Widget</string></property><widget class="QWidget" name="formLayoutWidget"><property name="geometry"><rect><x>210</x><y>410</y><width>160</width><height>80</height></rect></property><layout class="QFormLayout" name="formLayout"/></widget><widget class="QWidget" name="gridLayoutWidget"><property name="geometry"><rect><x>160</x><y>370</y><width>160</width><height>80</height></rect></property><layout class="QGridLayout" name="gridLayout"/></widget></widget><resources/><connections/>
</ui>
这里使用的xml写的界面,但是实际上在经过编译器运行后,仍然会生成对应的C++/C代码去执行生成操作。
当然这里只是介绍了解一下而已,后面专门有介绍的。
总结:
恭喜你完成了第一讲的学习!通过本篇内容,你已经成功搭建了Qt开发环境,并运行了第一个Qt程序。虽然这看似简单,但却是开启Qt世界大门的关键一步。一个稳定的开发环境能让你在后续学习中事半功倍,避免因配置问题分散精力。
让我们在下一讲中,一起揭开Qt神秘而强大的面纱!🚀