第5课 Qt Creator工程介绍
1. QT Creator工程管理(一个工程包含不同类型的文件)
(1).pro项目文件
(2).pro.user用户配置描述文件
(3).h头文件
(4).cpp源文件
(5).ui界面描述文件
(6)资源文件(图片、音频等)
2. .pro项目描述文件
2.1 .pro项目描述文件的基本构成
(1)#:注释起始符
(2)QT:模块声明
(3)TARGET:可执行文件名
(4)TEMPLATE:程序模板声明
(5)SOURCES:源码文件声明
(6)HEADERS:头文件声明
(7)FORMS:界面文件声明
(8)RC_FILE:资源文件声明
2.2 .pro项目描述文件中的高级变量
(1)INCLUDEPATH:头文件搜索路径
(2)CONFIG:设定项目的配置信息和编译选项
(3)LIBS:添加第三方库文件
(4)DEFINES:定义编译宏
2.3 pro文件的本质(qt中的makefile文件)

2.3 CONFIG配置
(1)CONFIG用于设定项目的配置信息和编译选项
(2)CONFIG的常用选项
①debug:构建debug版本的可执行程序
②release:构建release版本的可执行程序
③debug_and_release:同时构建debug版和release版
④warn_on:尽可能多的输出警告信息
⑤warn_off:不输出警告信息
(3)注意事项:
①CONFIG可以同时定义 debug 和 release,但只有一个处于active(当两个互斥的值出现时,最后设置的处于active状态)
②CONFIG(debug, debug|release)的含义:假设CONFIG += release debug release debug release debug。
判断在这样一个debug和release互斥的CONFIG设置中,debug是否出现在最后一个。如果是,返回TRUE。
▲通常当qmake在处理.pro文件时,会被处理3遍,一遍为debug、一遍为release,最后一遍为debug_and_release
【实例分析】.pro项目文件分析
#-------------------------------------------------
#
# Name: Qt Creator Project Demo
# Author:Santa Claus
# Date: --
#
#------------------------------------------------- QT += core gui //表示项目需要QtGui和Qtcore两个模块,Qt默认包含这两个模块
//还可以添加的模块有:widgets、network、xml、quick、multimedia、SQL、
//webkit等,可以参考QtSDK(在Assistant的索引模式中,输入"variables"
//找到变量“QT”,并点击相应的链接进去) greaterThan(QT_MAJOR_VERSION, ): QT += widgets //当Qt5之前,没有独立的QtWidgets模块
//从Qt5之后,QtWidgets从QtGui模块中分离出来了 TARGET = HelloWorld //目标文件名,一般与项目文件名一样
TEMPLATE = app //用来设定项目的构建类型,如果没有设置,会按默认“应用”来构建项目,主要模板:
//1. app:默认的模板,qmake会生成一个构建应用的Makefile
//2. lib:库,构建动态库或静态库的Makefile
//3. subdirs:子目录项目,qmake会根据SUBDIRS变量生成一个Makefile,该Makefile
// 包含构建子目录的逻辑,子目录内必须有pro文件存在
//4. vcapp: 生成一个Visual Studio的项目文件(.vcproj)可供VS使用
//5. vclib:生成一个VS的动态库或静态库
//6. vcsubdirs,会生成一个Vs的解决方案文件(.sln),里面包含每个子目录对应的
// 项目文件(.vcproj),可以用VS打开这个解决方案 INCLUDEPATH += E:/BCC/include \ //INCLUDEPATH:指定第3方库的头文件目录,使用相对路径时是从这个.pro
E:/VC/include // 文件本身所在目录开始的。 SOURCES += Main.cpp \ //SOURCES变量:用来指定项目所包含的源文件,多个源文件用空格隔开,
HelloWorld.cpp // 如果一行写不下,可以“\”来换行 HEADERS += HelloWorld.h //指定头文件,多个头文件之间用空格隔开 FORMS += HelloWorld.ui //FORMS:用来设置要用到的界面文件 RC_FILE += MyIco.rc //RC_FILE:用来设置要用到的资源文件 LIBS += -LE:/MyLib/lib -lmath //LIBS:第3方的库文件(不是头文件)
// 其中,-L前缀表示一个库目录,如E:/MyLib/lib
// -l(小写l)指定一个具体的库,如math
// CONFIG += warn_on debug //CONFIG:配置信息,此处表示尽可能详尽警告信息,同时构建Debug版
//1. qt:默认配置包含这个配置,可以用CONFIG -= qt去掉
//2. release: 构建release版本
//3. debug: 构建debug版本
//4. debug_and_release:同时构建release和debug版。debug、release
// debug_and_release这几个选项,哪个是最后
// 一个配置,就使用哪个
//5. warn_on和warn_off:打开或关闭警告信息 #
# if 'debug' option is set for CONFIG
#
CONFIG(debug) { //判断是否debug版
DEFINES += DEBUG_LOG
SOURCES += DebugLog.cpp
HEADERS += DebugLog.h
}
3. 项目文件
(1)一般来说,项目文件中的描述都是使用相对路径(相对于项目文件本身而言)
(2)Qt Creator将项目文件作为目标文件
①Qt Creator在打开项目文件的同时会生成.pro.user文件
②.pro.user文件包含一些与Qt相关的本地配置信息,当需要在不同计算机之间移动项目源码时,建议删除.pro.user
【编程实验】Qt Creator项目创建及分析
创建项目→选择模板“Application”→“Qt Widgets Application”
4. 小结
(1)Qt Creator以工程项目的方式对源码进行管理
(2)一个Qt Creator工程包含不同类型的文件
(3).pro文件用于配置和组织整个项目的相关信息
(4).pro文件是Qt中与平台无关的Makefile文件
(5)Qt Creator提供了开发所必备的快捷高效的功能
第5课 Qt Creator工程介绍的更多相关文章
- Windows下QT Creator工程中添加文件夹
在QT项目,常常会有很多头文件和源文件,但是QT Creator中却没有添加文件夹的功能,造成项目代码混乱. 下面是建立文件的步骤: 1.打开工程目录,在目录下建立文件夹,如建立文件SerialP ...
- QT-第一个程序 Hello QT , 以及QT creator介绍
第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #include &l ...
- Qt Creator 源码学习笔记03,大型项目如何管理工程
阅读本文大概需要 6 分钟 一个项目随着功能开发越来越多,项目必然越来越大,工程管理成本也越来越高,后期维护成本更高.如何更好的组织管理工程,是非常重要的 今天我们来学习下 Qt Creator 是如 ...
- [Qt Creator 快速入门] 第1章 Qt Creator简介
Qt Creator 是一个跨平台的.完整的 Qt 集成开发环境,其中包括了高级C++代码编辑器.项目和生成管理工具.集成的上下文相关的帮助系统.图形化调试器.代码管理和浏览工具等.这一章先对 Qt ...
- Qt Creator介绍
简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...
- 【Qt】Qt Creator介绍【转】
简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...
- QT Creator 转VS2017+QT工程
因为刚学QT 不熟悉其QT Creator 的开发环境,所以打算用VS2017来开发,因为要跨平台所以打算写出来的代码可以放在linux上编译. 这时就需要将VS2017的工程转换成QT Creato ...
- Qt Creator 更改默认构建目录到工程目录下
Qt Creator 更改默认构建目录到工程目录下 步骤 工具->选项->构建和运行->概要->Default build directory->去掉第一个". ...
- 在Qt Creator中创建C++工程并使用CMake构建项目
创建完毕后,若电脑上没有安装CMake,则无法构建工程, 我用的是绿色版,官网下载地址:https://cmake.org/files/v3.10/cmake-3.10.1-win64-x64.zip ...
随机推荐
- python assert 断言详细用法格式
使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件 ...
- js将json格式的list转换为按某个字段分组的map数组
这几天做的微信公众号项目中,出现了需要将list分组显示的需求,解决方法如下 var data = [{ "id": "32b80b76-a81e-4545-8065-1 ...
- Tornado源码分析 --- Redirect重定向
“重定向”简单介绍: “重定向”指的是HTTP重定向,是HTTP协议的一种机制.当client向server发送一个请求,要求获取一个资源时,在server接收到这个请求后发现请求的这个资源实际存放在 ...
- Sublime 中文标题乱码
---title:Sublime 中文标题乱码--- #markdown语法(非Github Flavored) #解决办法: 在用户设置里添加一项,强制不根据 dpi 缩放dpi_scale: 1. ...
- Visual Studio 后期生成事件命令行
set "str=$(ConfigurationName)" if "%str%"=="Release" (xcopy /y/e $(Tar ...
- 解决Jenkins 中无法展示 HTML 样式的问题
问题 将本地的jmeter脚本部署到Jenkins上时,可以运行成功也可以在本地生成正确的HTML.但在Jenkins中查看HTML report时内容显示不出来. because the docum ...
- promise的基础知识
promise 相当于异步操作结果的占位符 它不会去订阅一个事件,也不会传递一个回调函数给目标函数,而是让函数返回一个promise,例如: let promise = readFile('a.txt ...
- Editor does not contain a main type
1.错误描述 2.错误原因 在含有main方法的类中,运行应用程序,却提示这个错误:编译器不包含main类型 3.解决办法 (1)选择该Java类上一级文件,build path--->use ...
- python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据
本文将使用一个gitHub开源的组件技术来读写三菱的plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- Scss开发临时学习过程||webpack、npm、gulp配置
SCSS语法: 假设变量申明带有!default,那么如果在此申明之前没有这个变量的申明,则用这个值,反之如果之前有申明,则用申明的值. ‘...’传递多个参数: @mixin box-shadow( ...