zoukankan      html  css  js  c++  java
  • 第五课、Qt Creator 工程介绍------------------狄泰软件学院

    一、Qt Creator 的管理方式

    1、Qt Creator以工程项目的方式对源码进行管理

    2、一个Qt Creator工程包含不同类型的文件

    (1)、 .pro 项目描述文件

    (2)、 .pro.user用户配置文件

    (3)、 .h头文件

    (4)、 .cpp 源文件

    (5)、.ui 界面描述文件

    (6)、资源文件(图片、音频等)

    二、关于 .pro项目描述文件

    1、.pro项目描述文件的基本组成

    (1)、# : 注释起始符

    (2)、QT : 模块声明

    (3)、TARGET : 可执行文件名

    (4)、TEMPLATE : 程序模板声明

    (5)、SOURCES : 源码文件声明

    (6)、HEADERS : 头文件声明

    (7)、FORMS : 界面文件声明

    (8)、RC_FILE : 资源文件声明

    2、.pro项目描述文件中的高级变量

    (1)、INCLUDEPATH : 头文件搜索路径

    (2)、CONFIG : 设定项目的配置信息和编译选项

    (3)、LIBS : 添加第三方库文件

    (4)、DEFINES : 定义编译宏

    3、CONFIG : 设定项目的配置信息和编译选项的常用选项

    (1)、debug : 构建debug版的可执行程序

    (2)、release: 构建release版的可执行程序

    (3)、debug and release : 同时构建debug和release版

    (4)、warn_on : 尽可能多地输出警告信息

    (5)、warn_off :不输出警告信息

    4、.pro项目文件的本质:Qt中与平台无关的Makefile文件

    #-------------------------------------------------
    #
    # Name:  Qt Creator Project Demo
    # Author:Santa Claus 
    # Date:  2016-04-22
    #
    #-------------------------------------------------
    
    QT += core gui  //表示项目需要QtGui和Qtcore两个模块,Qt默认包含这两个模块
                    //还可以添加的模块有:widgets、network、xml、quick、multimedia、SQL、
                    //webkit等,可以参考QtSDK(在Assistant的索引模式中,输入"variables"
                    //找到变量“QT”,并点击相应的链接进去)
    
    greaterThan(QT_MAJOR_VERSION, 4): 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
    }

    三、项目文件

    1、一般来说,项目文件的描述都使用相对路径

    2、而相对路径是相对于项目文件本身而言

    3、Qt Creator 将项目文件作为目标文件

    4、注意

    (1)、Qt Creator 在打开项目文件时会同时生成.pro.user文件

    (2)、.pro.user文件包含一些与Qt相关的本地配置信息

    (3)、当需要在不同计算机之间移动项目源码时,建议删除.pro.user文件

    四、一些工程中的概念

    1、构建(build)

     (1)、对项目中的所有文件进行编译,最终生成可执行程序

    2、Debug版

    (1)、可以进行调试的构建版本

    (2)、可执行程序中包含调试信息运行效率不高

    3、Release版

    (1)、最终发布的应用程序构造版本

    (2)、无调试信息,运行效率高

    五、小结

    (1)、Qt Creator以工程项目的方式对源码进行管理

    (2)、一个Qt Creator工程包含不同类型的文件

    (3)、.pro文件用于配置和组织整个项目的相关信息

    (4)、.pro 是Qt中与平台无关的Makefile文件

    (5)、Qt Creator 提供了开发所必备的快捷高效的功能

  • 相关阅读:
    Leetcode单链表反转
    算法--二叉搜索树的python实现
    云服务器(阿里和腾讯)搭建网络云盘Nextcloud
    VGG16和集成模型(LeNet,CNN,Net均匀池化)比较
    git与github
    pyspider-崔庆才猫途鹰
    给 Python 添加进度条 | 给小白的 tqdm 精炼实例!
    @wraps 修饰器:让你的 Python 代码更加简短可爱 | 从简单实例来认识它
    并发和并行 | Python中实现多线程 threading 和多进程 multiprocessing
    Python格式化字符串字面值 | 被官方文档称之为『漂亮』的输出格式
  • 原文地址:https://www.cnblogs.com/gui-lin/p/6386088.html
Copyright © 2011-2022 走看看