在Qt软件中创建Qt项目运行并测试,Qt常用快捷键(详细图文教程)

在这里插入图片描述

💪 图像算法工程师,专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《图像增强》
📝《模型优化》
📝《模型实战部署》
📝《图像配准融合》
📝《数据集》
📝《高效助手》
📝《C++》


在这里插入图片描述

Qt软件安装教程见我上一篇博文。

一、Qt软件界面介绍

第一次打开Qt软件后,常用的功能见下,包括创建新项目,打开已有项目,编译运行项目和示例教程等:

在这里插入图片描述

在这里插入图片描述

二、Qt中创建一个新项目工程文件

2.1 创建项目

点击创建项目,见下:

在这里插入图片描述

2.2 项目名称和存放位置

下面自定义命名项目工程的名称,以及项目保存位置:

在这里插入图片描述

2.3 构建系统

下面构建系统选择qmake:

在这里插入图片描述

2.4 类信息

下面是类信息的填写,包括主窗口界面的类名,基类选择,是否启用设计拖控件功能等:

在这里插入图片描述

2.5 翻译文件

下面翻译文件,保持默认:

在这里插入图片描述

2.6 构建套件

我的是Windows系统,选择MinGW。

如果选择了MSVC会导致等会创建完成打开后,不能显示头文件和源文件列表,可以在后期配置中选择MinGW,就能正常显示并运行。

在这里插入图片描述

2.7 汇总

最后一步是汇总,保持默认即可:

在这里插入图片描述

三、项目文件结构

通过上面第二章节的步骤,已经创建好一个Qt项目,并自动生成了头文件,源文件等,见下:

在这里插入图片描述

下面对各个文件内容逐行解析,仔细看代码后的注释,我写的很详细。

3.1 .pro文件

创建 Qt 项目时,自动生成的 .pro 文件是 项目名称加上 .pro 后缀的文件。

.pro 文件是 Qt 项目中必不可少的配置文件之一,用于生成实际的 Makefile 或其他构建工具的配置文件。

.pro 文件是 qmake 项目文件,它主要用来管理项目的构建过程,包含以下信息:

项目依赖的模块(如 core、gui 等)。
编译选项和配置(如 C++ 标准)。
源文件、头文件和 UI 文件路径。
平台相关的部署规则。

3.1.1 打开Qt项目工程文件

后期如果想打开以前创建过的Qt项目工程文件,可以在Qt软件中直接打开.pro文件,就能将整个Qt工程打开,见下:

在这里插入图片描述

3.1.2 .pro文件内容解析

.pro文件内容解析我都写在了代码后面,见下:

在这里插入图片描述

可复制的.pro文件内容见下:

# core:包含 Qt 的核心功能(如事件循环、文件 I/O 等),适用于所有 Qt 程序。
# gui:提供图形用户界面的支持,如窗口、按钮等。
QT       += core gui     # 指定当前项目依赖的 Qt 模块。

# widgets 模块支持基于小部件(Widget)的界面设计,常见于 Qt 5 和更高版本。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets   # 条件语句,检查 Qt 的主版本号是否大于 4。如果当前使用的 Qt 版本高于 4,则添加 widgets 模块。

CONFIG += c++17      # 设置编译器的配置,指定使用 C++17 标准。确保项目可以使用 C++17 的新特性,如结构化绑定、std::optional 等。

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # 果取消注释,编译器会禁用 Qt 6.0.0 之前的所有弃用(Deprecated)API。强制代码使用较新的 Qt API,避免使用过时的功能。适用于需要长期维护的项目。

# 下面是文件配置
SOURCES += \           # 定义项目的源文件列表。每个文件路径用反斜杠(\)换行分隔,后续文件逐行添加。
    main.cpp \         # 主程序入口文件。
    mywidget.cpp       # 自定义窗口类的实现文件。

HEADERS += \           # 定义项目的头文件列表。
    mywidget.h         # 包含自定义窗口类 myWidget 的声明。

FORMS += \             # 定义项目的 Qt 设计师 .ui 文件列表。
    mywidget.ui        #界面设计文件,通过 Qt Designer 设计生成。

# 下面是部署规则
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin                    # 指定 QNX 平台上的目标路径,将项目生成的文件安装到 /tmp/$${TARGET}/bin 目录中。qnx:条件语句,适用于 QNX 平台。$${TARGET}:占位符,代表目标文件名。
else: unix:!android: target.path = /opt/$${TARGET}/bin    # 如果不是 QNX 且不是 Android 平台(!android),则适用于 Unix 系统。指定目标路径为 /opt/$${TARGET}/bin。
!isEmpty(target.path): INSTALLS += target                 # 如果 target.path 不为空(!isEmpty(target.path)),则将 target 添加到 INSTALLS 变量中。指定目标文件的安装路径,用于安装目标文件到指定目录。

3.2 头文件

头文件中内容及代码解析见下:

在这里插入图片描述

可复制的mywidget.h文件内容见下:

#ifndef MYWIDGET_H      // 头文件保护符,用于防止头文件的重复包含。如果当前文件未被定义(#ifndef),则定义它(#define)。
#define MYWIDGET_H      // 当同一个头文件被多次包含时,保护符确保文件内容只被编译一次,避免重复定义的错误。

#include <QWidget>      // 引入 QWidget 类的头文件。QWidget 是 Qt 中的基础窗口类,几乎所有窗口和控件类都直接或间接继承自它。

QT_BEGIN_NAMESPACE      // 命名空间的宏定义,方便处理 Qt 的命名空间。 这些宏确保 Qt 代码在支持命名空间时编译正确,若不支持命名空间则不会报错。
namespace Ui {          // 声明 Ui 命名空间,其中包含由 mywidget.ui 文件自动生成的 Ui::myWidget 类。
class myWidget;         // 这个类用于管理用户界面组件。
}
QT_END_NAMESPACE        // 命名空间的宏定义,方便处理 Qt 的命名空间。

// Qt 的所有 GUI 控件(窗口、按钮等)都以 QWidget 为基类。
class myWidget : public QWidget    // 定义一个自定义窗口类 myWidget,它继承自 Qt 的基础窗口类 QWidget。使 myWidget 具备 QWidget 的所有功能,同时可以扩展自定义功能。
{
    Q_OBJECT                       //  Qt 的宏,用于启用信号与槽机制。生成元对象代码(Meta-Object Code),支持 Qt 的信号和槽、属性系统、事件过滤等功能。如果类中需要使用信号与槽机制,则必须包含该宏。

public:          // 定义类的公有访问权限,下面的成员函数可以被类的外部访问。
    myWidget(QWidget *parent = nullptr);     // 声明构造函数。parent:指向父窗口的指针,默认值为 nullptr(表示没有父窗口)。
    ~myWidget();                             // 声明析构函数。销毁 myWidget 类的实例,并释放资源。

private:         // 定义类的私有访问权限,下面的成员变量只能在类内部访问。
    Ui::myWidget *ui;    // 定义一个指针变量 ui,指向 Ui::myWidget 类的实例。
                         // 用于管理 mywidget.ui 文件中定义的用户界面组件。通过指针访问 UI 中的控件(如按钮、文本框等)。
};
#endif // MYWIDGET_H     //与文件开头的 #ifndef 和 #define 对应,结束头文件保护符。确保文件内容仅在首次包含时编译,防止重复包含引发的错误。

3.3 源文件

3.3.1 mywidget.cpp源文件

mywidget.cpp源文件代码及解析见下:

在这里插入图片描述

可复制的mywidget.cpp源文件内容见下:

#include "mywidget.h"                 // 引入 mywidget.h 头文件,用于提供 myWidget 类的声明和依赖。
#include "ui_mywidget.h"              // 引入 ui_mywidget.h 文件,该文件由 Qt 的 UIC 工具(用户界面编译器)根据 mywidget.ui 文件自动生成,负责定义用户界面相关的类和方法。

myWidget::myWidget(QWidget *parent)   // 定义 myWidget 类的构造函数。参数 parent 是指针类型,指向父窗口(若为空,则表示没有父窗口)。
    : QWidget(parent)                 // 初始化,调用QWidget(父类)的构造函数,把parent传进去。Qt 中父子关系用于管理窗口层级和资源释放,子窗口随父窗口一起销毁。
    , ui(new Ui::myWidget)            // 初始化 ui 成员变量。ui 是一个指针,指向自动生成的 Ui::myWidget 类,用于操作界面组件
{
    ui->setupUi(this);                // 调用 setupUi 方法,为当前窗口(this)设置用户界面。setupUi 方法会将 mywidget.ui 文件中定义的界面布局、控件等加载到当前窗口。
}

myWidget::~myWidget()                 // 定义 myWidget 类的析构函数,在对象销毁时自动调用。
{
    delete ui;                        // 释放 ui 指针所指向的内存。确保在窗口销毁时,ui 对象(及其管理的界面控件)被正确释放,避免内存泄漏。
}

3.3.2 main.cpp源文件

main.cpp源文件代码及解析见下:

在这里插入图片描述

可复制main.cpp源文件内容见下:

#include "mywidget.h"      // 引入 mywidget.h 头文件。mywidget.h 文件中定义了自定义的窗口类 myWidget。
#include <QApplication>    // 包含一个应用程序类的头文件。引入 QApplication 类的头文件。QApplication 是 Qt 中用于管理 GUI 应用程序的核心类,负责初始化应用程序、事件处理和消息循环等。

// main程序入口。 argc命令行参数的个数。 argv命令行参数的字符数组。
// Qt 中支持从命令行传递参数并通过 argv 获取,如配置启动参数或调试标志。
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);  // 创建一个 QApplication 对象,名称为 a。在Qt中,应用程序对象,有且仅有一个
    myWidget w;                  // 创建一个 myWidget 类的对象,名称为 w。myWidget 是自定义窗口类,继承自 QWidget。此对象表示一个窗口实例,但创建后默认是隐藏状态。
    w.show();                    // 调用 show() 方法显示窗口。在 Qt 中,窗口对象在创建时默认是隐藏状态,需要手动调用 show() 方法将其显示到屏幕上。show() 会触发窗口的绘制事件,使其成为可见的 GUI 窗口。

    // 让应用程序对象进入消息循环机制中,当代码阻塞到这行
    return a.exec();    // 启动应用程序的事件循环。
}


/*
QApplication 对象在一个 Qt 应用程序中必须有且仅有一个。
它负责:
初始化应用程序的图形用户界面环境。
管理主事件循环。
处理所有用户事件(如鼠标点击、按键等)。
将命令行参数 argc 和 argv 传递给 QApplication,方便配置启动选项。
* /


/*
特点:
a.exec() 方法会进入消息循环,阻塞当前线程。
该方法等待并处理用户事件(如鼠标点击、按键等)以及操作系统信号,直到程序退出。
返回值:
应用程序正常退出时返回 0,异常退出时可能返回非 0 值。
*/

四、测试

4.1 运行main.cpp

点击Qt软件中左下角的Run按钮,就可以运行代码。运行代码的快捷键为Ctrl+R,见下:

在这里插入图片描述

4.2 运行结果

运行代码后如果弹出下面的对话框,说明项目创建成功,并能正常运行:

在这里插入图片描述

五、Qt重用快捷键

5.1 文件与项目相关

新建文件/项目:

Ctrl + N

打开文件/项目:

Ctrl + O

保存文件:

Ctrl + S

保存所有文件:

Ctrl + Shift + S

关闭文件:

Ctrl + W

退出 Qt Creator:

Ctrl + Q

5.2 代码编辑相关

自动补全代码:

Ctrl + Space

快速注释/取消注释:

Ctrl + /

代码缩进:

Tab

取消代码缩进:

Shift + Tab

快速格式化代码:

Ctrl + Shift + I

跳转到定义:

F2

返回跳转前的位置:

Ctrl + Alt + Left

跳转到下一个位置:

Ctrl + Alt + Right

查找替换:
查找:

Ctrl + F

替换:

Ctrl + R

5.3 代码编辑相关

启动调试:

F5

停止调试:

Shift + F5

单步执行(Step Over):

F10

进入函数(Step Into):

F11

跳出函数(Step Out):

Shift + F11

设置/取消断点:

F9

5.4 视图与窗口操作

切换到编辑模式:

Ctrl + 2

切换到设计模式:

Ctrl + 3

切换到调试模式:

Ctrl + 4

全屏模式:

Ctrl + Shift + F11

显示/隐藏侧边栏:

Alt + 0

5.5 导航与搜索

快速打开文件:

Ctrl + E

快速定位符号:

Ctrl + K

跳转到上一处修改:

Ctrl + Shift + Z

显示类视图:

Ctrl + 1

查找文件:

Ctrl + Shift + O

5.6 运行相关

构建项目:

Ctrl + B

运行项目:

Ctrl + R

清理项目:

Ctrl + Shift + B

5.7 实用快捷键

显示帮助文档:

F1

显示项目结构树:

Alt + 1

显示问题列表:

Alt + 2

5.8 自定义快捷键

如果默认快捷键不适合你的习惯,你可以通过以下路径自定义:

路径:工具 (Tools) → 选项 (Options) → 环境 (Environment) → 快捷键 (Keyboard)。

在这里插入图片描述

通过熟练使用这些快捷键,可以显著提高在 Qt 中的开发效率!

六、可执行程序

在每次成功运行Qt项目后都会自动生成一个可执行文件,后期使用直接双击可执行文件就能使用开发好的UI界面,具体存放位置:Demo_1\build\Desktop_Qt_6_8_1_MinGW_64_bit-Debug\debug

在这里插入图片描述

七、Qt帮助助手

在安装Qt过程中,有一个Qt帮助助手可执行程序,后期再遇到不会的Qt控件时,可单独运行此程序查看文档。

可执行帮助程序的存放路径:D:\APP\Qt_C++\Qt_path\6.8.1\mingw_64\bin。此路径是自己安装Qt包的路径,见下:

在这里插入图片描述

双击assistant.exe运行结果见下:

在这里插入图片描述

八、总结

在Qt软件中创建Qt项目运行并测试,Qt常用快捷键的详细图文教程,希望能帮到你!

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注下面「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉研坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值