Qt项目文件详解

 .pro文件配置详解

# Qt项目.pro文件配置详解

#QT模块引入部分:
QT += core gui
# 这一行指定了当前项目需要用到的Qt模块,其中core是基础模块,包含了Qt的基础功能;gui则是图形用户界面模块,用于创建和管理GUI应用。

#条件编译部分:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 当Qt版本大于4时,添加widgets模块。从Qt5开始,Widgets模块被独立出来,用于构建基于QWidget的桌面应用程序。

#C++标准设定部分:
CONFIG += c++17
# 设置项目使用的C++标准为C++17,确保编译器使用此版本的C++特性进行编译。

#API弃用警告处理部分(未启用):
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000
# 如果取消这一行的注释,那么项目在编译时将禁止使用所有在Qt 6.0.0之前被弃用的API,如果不启用,项目仍可编译但可能会包含过时API的警告。

#源文件与头文件列表:
SOURCES += main.cpp widget.cpp
HEADERS += widget.h
# SOURCES列出项目所有的源代码文件,HEADERS则列出对应的头文件。此处有主函数入口main.cpp和自定义Widget类的相关实现widget.cpp以及其头文件widget.h。

UI文件引用:
FORMS += widget.ui
# FORMS用于指定项目中的Qt Designer设计的UI文件,这里包含了名为widget.ui的界面文件。

#部署规则设定部分:
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
# 这些语句定义了项目的部署规则。
#当目标平台为qnx时,编译生成的可执行文件将被部署到/tmp目录下与目标名称相对应的bin子目录中;
#对于非Android的Unix-like系统,部署路径为/opt目录下的对应target名的bin子目录。
#如果target.path不为空(即设置了部署路径),#则将这个路径下的可执行文件添加到待安装列表中,在make install时会被复制到相应位置。

 Widget.h

// 文件:Widget.h
// 功能:这是使用Qt框架开发的一个窗口组件类(Widget)的头文件

// 防止重复包含头文件
#ifndef WIDGET_H
#define WIDGET_H

// 引入QWidget基类
#include <QWidget>

// 开启Qt命名空间
QT_BEGIN_NAMESPACE

// 声明一个内部Ui命名空间,其中包含类Widget的Ui代理类
namespace Ui {
class Widget;
}

// 结束Qt命名空间
QT_END_NAMESPACE

/**
 * @brief Widget 类
 *
 * 继承自QWidget类,代表一个定制化的窗口组件。该组件通过Qt Designer工具生成的Ui文件进行界面布局,并在此基础上进行功能扩展。
 */
class Widget : public QWidget
{
    Q_OBJECT // Qt元对象宏,用于信号槽机制及其他Qt特性的支持

public:
    /**
     * @brief 构造函数
     * @param parent 指向父窗口的指针,默认为nullptr,表示无父窗口
     */
    Widget(QWidget *parent = nullptr);

    /**
     * @brief 析构函数
     * 在销毁Widget实例时会被自动调用,释放资源并清理相关联的对象。
     */
    ~Widget();

private:
    /**
     * @brief UI成员变量
     * 指向由Qt Designer生成的用户界面代理对象的指针,用于在运行时加载并管理UI布局。
     */
    Ui::Widget *ui; // Ui代理对象,用于访问界面上的控件
};

#endif // WIDGET_H

Widget.cpp

// 文件:Widget.cpp
// 功能:实现Widget类的构造、析构以及初始化用户界面

#include "widget.h" // 包含Widget类的声明
#include "ui_widget.h" // 包含由Qt Designer生成的Widget类用户界面(UI)实现

// 引入QDebug,用于输出调试信息
#include <QDebug>

// 引入QMessageBox,用于弹出对话框消息
#include <QMessageBox>

// 构造函数
Widget::Widget(QWidget *parent) :
    QWidget(parent), // 调用QWidget的构造函数,设置父窗口
    ui(new Ui::Widget) // 创建一个新的Ui::Widget对象实例
{
    // 初始化用户界面
    ui->setupUi(this); // 使用Ui::Widget中的setupUi函数将此Widget与设计的UI布局绑定起来
}

// 析构函数
Widget::~Widget()
{
    // 释放Ui::Widget对象占用的内存
    delete ui;
}

// (可选)可以在这里添加其他成员函数的实现,如事件处理、信号槽连接等

main.cpp

// 文件:main.cpp 或 主程序入口文件
// 功能:启动 QApplication 并创建一个 Widget 实例,显示并运行主事件循环

#include <QApplication> // 引入 QApplication 类,它是 Qt 应用程序的核心类,用于管理应用程序的事件循环和 GUI 环境
#include "widget.h" // 引入自定义的 Widget 类,作为应用程序的主要窗口

int main(int argc, char *argv[]) // 主函数,接受命令行参数
{
    // 创建 QApplication 对象,argc 和 argv 分别是命令行参数的数量和数组指针
    QApplication a(argc, argv);

    // 创建 Widget 类的一个实例 w
    Widget w;

    // 显示 Widget 窗口
    w.show();

    // 进入 QApplication 的主事件循环,该循环在没有退出条件满足前持续运行,处理所有 GUI 事件
    // 返回值是应用的退出码,通常情况下,0 表示正常退出
    return a.exec();
}
/**
 * QApplication::exec() 函数的作用是启动应用程序的主事件循环。
 * 在图形用户界面(GUI)程序中,事件循环是一个核心机制,它不断地监听和分发来自操作系统的各种事件,如鼠标点击、键盘输入、窗口大小改变等。
 * 当调用 exec() 函数后,程序会进入一个持续运行的状态,等待并处理这些事件。
 * 直到有事件触发了程序退出(例如用户关闭主窗口、发送特定的退出信号等),exec() 函数才会返回。
 * 返回的整数值通常表示应用程序的退出状态,0通常表示正常退出,非0值则可能表示异常或错误。
 * /

 快捷键

在Qt Creator中,开发人员常常使用的一些快捷键包括但不限于以下列举的几个类别:

基本操作快捷键:

打开文件或项目: Ctrl+O
新建文件或项目: Ctrl+N
保存当前文件: Ctrl+S
全屏模式切换: F11
查找文本: Ctrl+F
替换文本: Ctrl+R
打开帮助文档: F1
函数声明和定义之间切换: F2
向下查找: F3
头文件和源文件切换: F4
启动调试: F5
停止调试: Shift+F5
单步执行: F10
逐过程执行(进入函数内部): F11
跳出当前函数: Shift+F11
设置/取消断点: F9
运行到光标处: Ctrl+F10
编译与运行相关快捷键:

编译项目: Ctrl+B
运行项目: Ctrl+R
清理项目: Ctrl+Shift+R
重新构建项目: Ctrl+Shift+B
编辑操作快捷键:

注释/取消注释所选行: Ctrl+/
整行向上/向下移动: Ctrl+Shift+↑/↓
当前行向上/向下复制: Ctrl+Alt+↑/↓
其它实用快捷键:

自动补全: 默认通常是 Ctrl+Space,可在设置中更改
打开快捷键设置: 通过菜单栏 工具 -> 选项 -> 键盘 来查看和自定义快捷键
请注意,以上快捷键可能因Qt Creator版本及操作系统的不同而略有差异,建议在实际使用时参考Qt Creator的帮助文档或通过其内部的快捷键设置界面确认具体的快捷键映射。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值