栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Qt1:新建项目各文件说明

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Qt1:新建项目各文件说明

Qt新建项目各文件说明
  • 前言
  • 一、新建项目架构
  • 二、项目管理文件.pro
  • 三、界面文件.ui
  • 四、主函数文件main.cpp
  • 五、窗体相关文件test.h
  • 六、窗体相关文件test.cpp
  • 七、ui_test.h文件


前言

从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      // 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 

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集成的类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号