文章目录
- 1. 清华镜像源下载
- 2. 安装
- 3. 开始菜单上的 QT 工具
- 4. 打开 Qt Creator
- 5. 简单的 GUI C++ 项目
- 5.1 打开 Qt Creator 并创建新项目
- 5.2 设计界面
- 5.3 添加按钮的点击事件
- 5.4 编译并运行项目
- 6. 信号和槽(Signals and Slots)
这里用到了C++类与对象的很多概念
1. 清华镜像源下载
https://mirrors.tuna.tsinghua.edu.cn/qt/archive/online_installers/4.8/?C=M&O=D
2. 安装
安装的时候可以注册,填写邮箱,设置密码,会打开网页填写表单,再到邮箱里确认等等,然后就可以继续下一步
以下过程界面可能有疏漏,看看大体过程
开源义务,下一步
可以点选下面一个
这里路径可改,我默认了
选了两个tools :Desktop 和 DesignStudio
主要是没用过,没经验,也就不自定义安装了
根据字面意思,选了一个桌面开发、一个设计
暂时对Android 汽车操作系统应用程序和移动开发没有需求
有个界面是告知我大约5.2GB
接着是一段安装过程,根据网络情况,大约耗时20分钟
安装完成
3. 开始菜单上的 QT 工具
安装完毕后,开始菜单
-
Qt Creator 14.0.1 (Community)
主要的开发环境和 IDE,编写、编辑、调试和构建 Qt 应用程序 -
Qt Design Studio
专注于 GUI 设计,设计界面,导入到 Qt Creator 中进行逻辑开发 -
Qt 6.7.2 (MinGW 11.2.0 64-bit)
不需要直接打开,被 Qt Creator 调用的编译工具链 -
Designer 6.7.2 (MinGW 11.2.0 64-bit)
独立的界面设计工具,对于简单的 UI 设计,使用 Qt Creator 内置的功能 -
Assistant 6.7.2 (MinGW 11.2.0 64-bit)
查阅 Qt 的官方文档和 API 说明。 -
Linguist 6.7.2 (MinGW 11.2.0 64-bit)
本地化工具,为 Qt 应用程序进行多语言支持 -
Qt Maintenance Tool
Qt 的维护工具,更新或更改 Qt 安装时使用4. 打开 Qt Creator
Qt Creator,所有的开发、设计、调试功能都在这里集成,使用 Qt 的主要平台
点击
界面最底下有一行,在帮助里可以再次打开
5. 简单的 GUI C++ 项目
设计一个基本的窗口应用程序,放置一个按钮,点击按钮时会显示一条消息
5.1 打开 Qt Creator 并创建新项目
(1)打开 Qt Creator,在主界面上,点击 “新建项目”(或选择“文件” > “new project…”)
(2)在“项目”类别下,选择 “Application” > “Qt Widgets Application”,然后点击 “选择”
Qt Widgets Application 是 Qt 框架中的一种应用程序类型,用于开发传统的桌面图形用户界面(GUI)应用程序
每个 Widgets 就是一个控件,如按钮 (QPushButton)、文本框 (QLineEdit)、列表 (QListView)、窗口 (QMainWindow) 等
Qt Widgets 应用程序的典型结构:
Main Window (QMainWindow),主窗口,包含菜单栏、工具栏、状态栏等
各类控件(按钮、文本框)可以放置在主窗口中
当控件发生某个事件(如按钮被点击)时,它发出一个信号,槽函数可以捕捉这个信号并执行相应的代码
(3)给项目取一个名称(如 “MyFirstQtApp”),并选择项目的保存路径。点击 “下一步”
(4)构建系统
三个选项:qmake、CMake 和 Qbs
- qmake
Qt 自带的构建系统,集成良好,适合快速上手,易于配置,特别适合小型项目,快速创建和测试 GUI 应用程序。
逐渐被 CMake 所取代,官方推荐新项目使用 CMake - CMake
逐渐成为 Qt 项目推荐的构建工具。
能够管理复杂的构建配置,广泛支持各类编译器和开发工具,跨平台,易于与第三方库集成 - Qbs (Qt Build Suite)
逐步被官方弃用。
这里只是想快速体验 Qt 的开发流程,选择 qmake
(5)Details
保持默认的类名称和基类设置, “下一步”
(6)Translation
这个界面是 Qt 项目设置中的 Translation File(翻译文件) 配置界面,主要为应用程序添加多语言
只是想创建一个简单的 GUI 项目,其中包含一个按钮和一个消息框,没有复杂的多语言需求,因此保持默认的 <无> 即可
(7)构建套件(Kit)
默认即可。
配置项目编译和运行环境的集合,编译器、Qt 版本、调试器等。它定义了如何编译和运行你的项目。每个 Kit 对应不同的开发平台和配置,比如 Windows、Linux、调试版本、发布版本等
Desktop Qt 6.7.2 MinGW 64-bit
当前配置的构建套件,指定了使用 Qt 6.7.2 版本和 MinGW 64 位编译器。这是一个标准的配置,适合大多数 Windows 桌面应用程序的开发。
Debug生成带调试信息的可执行文件,开发阶段用来调试代码。
Release生成优化后的可执行文件,没有调试信息,适合发布和分发应用程序
Profile性能分析的配置
对一个简单项目来说,保持默认构建套件
Python 3.12.4,Qt 支持 Python 的集成,可以用于 Qt for Python 项目,当前开发的是一个 C++ GUI 项目,不选
点击 “下一步”
(8)汇总
点击完成,界面如下
5.2 设计界面
在项目树中,找到并双击 mainwindow.ui 文件
打开 Qt Designer设计界面
在左侧的 Widget Box 中找到 Push Button(按钮),拖放到窗口中央
在右侧的 属性面板中设置按钮的 text 属性为 “Click Me”
5.3 添加按钮的点击事件
(1)选中按钮,在右侧 属性面板中找到 “objectName”,确保它的名称是 pushButton
可以更改,pushButton1,pushButton2… 或者有意义的名字,根据需要命名,C++类的对象的名称,理解为变量名,代码里引用的时候要和这里保持一致
Ctrl + s
(2)左侧编辑,双击 mainwindow.h,在 mainwindow.h 文件中,声明槽函数 onButtonClicked()
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void onButtonClicked(); // 声明槽函数
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
槽函数声明位置:onButtonClicked() 必须声明在 private slots: 下
确保mainwindow.cpp 文件构造函数中 connect() 调用的槽函数名与声明和实现完全一致。
(3)mainwindow.cpp 文件
在 mainwindow.cpp 中实现构造函数 MainWindow::MainWindow 和槽函数 onButtonClicked()
头文件和实现文件同步更新:如果修改了槽函数,确保同时修改 mainwindow.h 和 mainwindow.cpp 文件中的声明和实现
有注释的地方是添加的
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox> // 用于显示消息框
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 连接按钮的点击信号到槽函数 onButtonClicked
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}
MainWindow::~MainWindow()
{
delete ui;
}
// 槽函数的实现,当按钮被点击时会调用这个函数
void MainWindow::onButtonClicked()
{
// 显示一个消息框
QMessageBox::information(this, "消息", "按钮被点击了!");
}
QMessageBox::information(this, “消息”, “按钮被点击了!”); 是 Qt 框架中用来显示消息框的函数调用
标题:消息
内容:按钮被点击了!
按钮:一个“OK”按钮,用户可以点击以关闭消息框
5.4 编译并运行项目
点击左下角的 绿色三角形(运行按钮),或按 Ctrl+R
Qt Creator 会编译项目并启动程序,出现一个窗口,带有一个按钮,点击按钮时,会弹出一个消息框显示 “Button Clicked!”
6. 信号和槽(Signals and Slots)
信号是 Qt 对象(通常是 QWidget 的子类)用来通知其他对象某些事件已经发生的机制
例如,当按钮被点击时,就会发出 clicked() 信号
槽函数用于接收信号并对信号做出响应,
槽是一个普通的 C++ 函数,可以是任何成员函数、普通函数、甚至是 lambda 表达式,并且可以是公有、保护或私有的函数
使用 connect() 函数将信号和槽连接起来
connect(信号发出者, 信号, 接收者, 槽函数);
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
将按钮的 clicked() 信号与 onButtonClicked() 槽函数连接,当按钮被点击时,onButtonClicked() 就会被调用