Qt1:新建项目各文件说明


前言

从Qt基础部分逐步开始学习Qt相关知识,并对所学知识进行记录汇总。记录从Qt新建项目的文件说明开始,关于Qt安装以及项目新建操作可自行网上查找。

一、新建项目架构

在这里插入图片描述
1、test.pro:项目管理文件,包含一些对项目的设置项
2、Headers分组:该节点下包含项目所有的头文件(.h文件),图中test.h是该项目中主窗口类的头文件。
3、Sources分组:该节点下是项目所有C++源文件(.cpp文件),图中main.cpp是主函数文件,也是应用程序入口。test.cpp是主窗口类的实现文件,与test.h文件对应。
4、Forms分组:该节点下是项目所有界面文件(.ui文件)。图中test.ui是主窗口的界面文件。界面文件是文本文件,使用XML语言描述界面的组成。

二、项目管理文件.pro

QT       += core gui    #core gui:GUI设计的类库模块。根据项目涉及的功能需求,添加适当的类库模块支持

#当Qt主版本大于4时,加入widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

#记录项目中包含的源程序文件、头文件、界面文件。这些文件Qt会自动添加。
SOURCES += \
    main.cpp \
    test.cpp

HEADERS += \
    test.h

FORMS += \
    test.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

三、界面文件.ui

该文件是可视化设计的窗体定义文件,双击项目文件中的.ui文件,可以打开一个集成再Qt Creator中的设计师界面。
在设计界面进行操作Qt会自动解析,可以不用管该文件是怎么生成的。
在这里插入图片描述

四、主函数文件main.cpp

#include "test.h"

#include <QApplication>     // Qt标准应用程序类

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);     // 定义并创建应用程序
    test w;                         // 定义并创建窗口
    w.show();                       // 显示窗口
    return a.exec();                // 应用程序运行
}

五、窗体相关文件test.h

#ifndef TEST_H
#define TEST_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class test; }    // 一个命名空间ui,包含一个test类
QT_END_NAMESPACE

class test : public QMainWindow
{
    Q_OBJECT	// 宏,使用Qt信号槽机制的类必须加入该宏

public:
    test(QWidget *parent = nullptr);
    ~test();

private:
    Ui::test *ui;       // 使用ui::test定义的一个指针
};
#endif // TEST_H

六、窗体相关文件test.cpp

#include "test.h"
#include "ui_test.h"    // Qt编译生产的与UI文件对应的类定义文件

// 构造函数:执行父类QMainWindow的构造函数,创建一个Ui::test类的对象ui
test::test(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::test)
{
    ui->setupUi(this);  // 执行了Ui::test类的函数,实现窗口的生成和各种属性的设置、信号槽的关联
}

test::~test()
{
    delete ui;
}

七、ui_test.h文件

在对test.ui文件编译后生产的一个文件,该文件不会直接在项目文件目录中显示。
1、文件定义了一个类UI_TEST,用于封装可视化设计界面。
2、自动生成了界面各个组件的类成员变量定义。在public部分为界面上每一个组件定义了一个指针变量,变量名称就是设置的objectName。
3、定义了setupUI()函数,这个函数用于创建各个界面组件,并设置其位置、大小、文字内容、字体等属性,设置信号槽关联。
setupUI()函数第一部分根据设计师界面内容,用C++代码创建界面上各组件,并设置其属性。
接下来调用retranslateUI(test),用来设置界面各组件的文字内容属性,如标签上的文字、按键的文字、窗体的标题等。将界面上的文字设置的内容独立出来作为一个函数,在设计多语言界面时会用到该函数。
第三部分是设置信号槽的关联。
4、定义namespace UI,并定义一个从UI_test集成的类

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

弈枫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值