Qt初识_项目文件解析

个人主页:C++忠实粉丝
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C++忠实粉丝 原创

Qt初识_项目文件解析

收录于专栏【Qt开发
本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌

目录

1. pro文件解析

2. widget.h 文件解析

3. main.cpp 文件解析

4. widget.cpp 文件解析

5. widget.ui 文件解析 


1. pro文件解析

工程新建好之后,在工程目录列表中有一个后缀为 ".pro" 的文件, ".pro" 文件就是工程文件 (project) ,它是 qmake 自动生成的用于生产 makefile 的配置文件。如图所示:

 双击进入该文件,该文件的核心内容如下:

QT += core gui // Qt 包含的模块

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //大于 Qt4 版本才包含 widget 模块 TARGET = QtFirst //应用程序名生成的 .exe 程序名称

TEMPLATE = app //模板类型,应用程序模板

SOURCES += main.cpp\ //源文件

widget.cpp //源文件

HEADERS += widget.h //头文件

".pro" 文件的写法如下: 

1. 注释:从 "#" 开始,到这一行结束。

2. QT += core gui // Qt 包含的模块 Qt5 包含的模块如下图所示:

 

3. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 这条语句的含义是,如果 QT_MAJOR_VERSION 大于 4 也就是当前使用的 Qt5 及更高版本) 需要增加 widgets 模块。如果项目仅需支持 Qt5 , 也可以直接 添加 "QT += widgets" ⼀句。不过为了保持代码兼容 ,最好还是按照 QtCreator 生成的语句编写。

4. 指定生成的应用程序名:TARGET = QtDemo

5. TEMPLATE = app //模板。告诉 qmake 为这个应用程序生成哪种 makefile。下面是可供选择的模 板:

⚫ app:建立一个应用程序的 makefile。这是默认值,所以如果模板没有被指定,这个将被使 用。

⚫ lib :建立一个库的 makefile。

⚫ vcapp:建立一个应用程序的 VisualStudio 项目文件。

⚫ vclib: 建立一个库的 VisualStudio 项目文件。

⚫ subdirs:这是⼀个特殊的模板,它可以创建一个能够进入特定目录的 makefile 并且为它调用 make 的 makefile。 

6. 工程中包含的源文件:SOURCES += main.cpp/widget.cpp

7. 工程中包含的头文件:HEADERS += widget.h

8. 工程中包含的资源文件:RESOURCES += painter.qrc

9. 工程中包含的 "ui" 设计文件:FORMS += widget.ui

10. 配置信息:CONFIG += c++11 (使用 c++11 的特性) CONFIG 用来告诉 qmake 关于应用程序的配置信息。 

2. widget.h 文件解析

在Qt中,如果要使用信号与槽(signal 和 slot)的机制就必须加入 Q_OBJECT 宏

Ui::Widget *ui; 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,所以指针 ui 是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针 ui 去访问。

3. main.cpp 文件解析

使用 Qt Creator 新建任意工程之后,main.cpp 文件中都会自动生成如下代码:

 解释:

1. Qt 系统提供的标准类名声明头文件没有 .h 后缀;

2. Qt 一个类对应一个头文件,类名就是头文件名;

3. QApplication 为应用程序类;QApplication a;(a为应用程序对象,有且仅有⼀个。)

⚫ QApplication 管理图形用户界面应用程序的控制流和主要设置。

⚫ QApplication 是 Qt 的整个后台管理的命脉。它包含主事件循环,在其中来自窗口系统和其它 资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。

⚫ 对于任何⼀个使用 Qt 的图形用户界面应用程序,都正好存在⼀个 QApplication 对象,而不论 这个应用程序在同一时间内是不是有 0、1、2 或更多个窗口。

4. myWidget w; //实例化窗口对象

5. w.show(); //调用show函数显示窗口 

6. a.exec() :程序进⼊消息循环,等待对用户输⼊进行响应。这里 main()把控制权转交给Qt,Qt 完成事件处理工作,当应用程序退出的时候 exec() 的值就会返回。在 exec() 中,Qt 接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。 

4. widget.cpp 文件解析

widget.cpp 文件是类 Widget 的实现代码,所有在窗体上要实现的功能添加在此文件中:

5. widget.ui 文件解析 

widget.ui 是窗体界面定义文件,是⼀个 XML 文件,定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等。用 UI 设计器可视化设计的界面都由 Qt 自动解析,并以 XML 文件的形式保存下来。在设计界面时,只需在 UI 设计器里进行可视化设计即可,而不用管 widget.ui 文件是怎么生成的。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值