QT学习笔记(1):QT在windows下的安装及工程文件.pro分析(转载)
最近在学习ffmpeg,现在都是快餐文化,没时间从基本的原理学起,只能拿别人的源码来学习,边看源码边查API。开源的代码以QT+ffmpeg+SDL居多,所以就学起QT环境的使用。这里转载了3个作者的文章。
1.QT在windows下的安装(转载)
在CSDN上面搜了几篇QT安装的文章,以下面的文章比较有帮助:
作者:技小艺,文章:Qt安装教程
Qt介绍:
Qt 是一个跨平台的 C++开发库。主要用来绘制漂亮的界面,其他还包含很多其它功能,如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等。
Qt 是一个跨平台,不依赖于平台开发的软件,例如 Windows、 Linux、 Unix,智能手机系统Android、 iOS、 嵌入式系统 QNX、 VxWorks 等等。“跨平台”的特性使得在Qt开发出来的代码可以无需任何修改或者小修改就可以在其他平台上运行。
Qt安装步骤:
1.软件下载:Qt官方网址:http://download.qt.io
Qt的版本是一直在更新中的,所以读者选择自己所需的版本进行下载,笔者这里以下载window平台下的Qt5.12.9版本举例。
2.软件安装:
双击下载好的安装包
登录 Qt 帐号,如果还没有帐号及密码,到 https://www.qt.io/自行注册。
2.工程文件.pro的介绍(转载)
2.1使用表格整理各项内容
下面表格转载自作者:feiyangqingyun,文章:QtCreator中pro项目文件格式说明。
名称 | 说明 |
---|---|
QT += core gui | 添加本项目中需要的模块,影响后面代码文件include的时候自动弹出下拉选择,如果pro文件没有引入该模块则无法自动语法提示,一般打包发布的时候对应动态库文件比如 Qt5Core.dll。 |
TARGET = xxx | 生成最后目标文件的名字,可以是可执行文件或者库文件。 |
TEMPLATE = app | 项目程序的生成模式,默认是app表示生成可执行文件程序,如果是动态库项目就是 TEMPLATE = lib。 |
CONFIG += qaxcontainer | 引入一些配置,在Qt4的时候还用来引入一些模块,其中有部分改成了QT += 方式引入,比如Qt5引入本地activex控件支持改成了QT += qaxcontainer。 |
DEFINES += xxx | 项目中自定义的一些定义,可以在代码文件中识别,通常用来定义一些不同平台的处理,根据项目需要自己定义任何标识。 |
HEADERS += head.h | 项目中用到的头文件,一般拓展名是.h,可以写在一行也可以分行写,分行要用 \ 斜杠结束。 |
SOURCES += main.cpp | 项目中用到的实现文件,一般拓展名是.cpp,可以写在一行也可以分行写,分行要用 \ 斜杠结束。 |
FORMS += Form.ui | 项目中用到的UI文件,一般拓展名是.ui,可以写在一行也可以分行写,分行要用 \ 斜杠结束。 |
RESOURCES += main.qrc | 项目中用到的资源文件,可以多个,写代码使用对应资源文件中的文件时候务必记得资源文件中的前缀。 |
LIBS += -L$$PWD/ -lavformat -lavcodec | 项目中编译时候链接依赖的库,一般是 .lib .a .dylib 文件,可以写在一行,省略文件名的lib打头部分,也可以分多行绝对路径和全名称。 |
DESTDIR += $$PWD/bin | 目标生成路径,$$PWD表示当前目录,一般建议生成的最终文件重定向到另外目录存放,好找,不然一堆临时文件在里面有时候文件太多好难找。 |
INCLUDEPATH += $$PWD/include | 工程需要的头文件,指定整个目录,写代码的时候找到的话会自动下拉。 |
DEPENDPATH += | 工程的依赖路径,用的比较少,一般涉及到引入链接库的时候可能需要。 |
include($$PWD/3rd.pri) | 引入pri模块文件,pri最大的好处就是分目录管理文件,通用的轮子模块可以放到一个目录下,然后用pri统一管理,可以给多个项目公用。 |
2.2 实例分析
下面的实例分析转载自作者:mainn,文章:QT实验分析教程 Qt Creator工程介绍 — .pro项目描述文件,移植代码注意.pro.user(3)
#-------------------------------------------------
#
# Name: Qt Creator Project Demo
# Author:Delphi Tang
# Date: 2015-08-24
#
#-------------------------------------------------
QT += core gui ##模块声明 core模块 gui模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets ##如果使用QT版本大于4,那么需要告诉QT,还需要widgets模块
TARGET = HelloWorld ##可执行文件名
TEMPLATE = app ##HelloWorld是一个app,可执行程序
INCLUDEPATH += E:/BCC/include \ ##头文件搜索路径
E:/VC/include
SOURCES += Main.cpp \ ##源文件
HelloWorld.cpp
HEADERS += HelloWorld.h ##头文件
FORMS += HelloWorld.ui ##界面描述文件.ui
RC_FILE += MyIco.rc ##资源文件.rc
LIBS += -LE:/vlc-1.11/sdk/lib ##外部库
CONFIG += warn_on debug ##设定项目的配置信息和编译选项,尽可能输出警告信息,可调试的应用程序
#
# if 'debug' option is set for CONFIG
#
CONFIG(debug) {
DEFINES += DEBUG_LOG
SOURCES += DebugLog.cpp
HEADERS += DebugLog.h
}
var code = aa8dbdbe-165c-4fd0-8635-cb627111b632