1、项目准备与新建

一、环境搭建

1 - Qt安装

2 - FFmpeg安装

  • FFmpeg:4.4.2-2
  • FFmpeg安装教程:参考地址 ->

二、Qt项目组成和管理

  • Qt项目管理窗口:在Qt Creator左侧工具栏中单击“编辑”按钮,即可进入项目管理窗口;Qt Creator可以打开多个项目,但只有一个活动项目,活动项目名称加粗显示
  • 在项目名称节点下,分组管理着各种源文件,文件和分组如下
    • xxx.pro文件:是项目管理文件,包括一些对项目的设置项
    • Headers分组:该节点下是项目内的所有头文件(.h)
    • Sources分组:该节点下是项目内的所有C++源文件(.cpp)
    • Resources分组:该节点下项目内的各种资源文件,如QML文件,图标(图片)文件,翻译文件等;使用qrc文件加载资源

三、.pro项目文件简介

  • .pro文件注释:使用#进行注释
关键字释义
TEMPLATE 指定qmake为这个应用程序生成哪种makefile
QT指定所要使用的Qt模块(默认是core gui,对应于QtCore和QtGui模块)
CONFIG配置变量指定了编译器所要使用的选项和所需要被连接的库
TARGET指定可执行文件或库的基本文件名,其中不包含任何的扩展、前缀或版本号(默认的是当前的目录名)
DEFINES应用程序所需的额外的预处理程序定义的列表
SOURCES应用程序中的所有源文件的列表
HEADERS应用程序中的C++头文件(.h)
FORMS应用程序中的所有.ui文件(由Qt设计器生成)的列表
DESTDIR放置可执行程序目标的目录
INCLUDEPATH应用程序所需的额外的包含路径的列表
DEPENDPATH应用程序所依赖的搜索路径
VPATH寻找补充文件的搜索路径
DEF_FILE只有Windows需要:应用程序所要连接的.def文件
RC_FILE只有Windows需要:应用程序的资源文件
RES_FILE只有Windows需要:应用程序所要连接的资源文件
  • TEMPLATE关键字类型
TEMPLATE关键字内容释义
app建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
lib建立一个库的makefile。当使用这个模板时,除了“app”模板中提到系统变量,还有一个VERSION是被支持的。你需要在为库指定特定信息的.pro文件中使用它们。VERSION - 目标库的版本号,比如,2.3.1
vcapp建立一个应用程序的Visual Studio项目文件
vclib建立一个库的Visual Studio项目文件
subdirs这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。在这个模板中只有一个系统变量SUBDIRS可以被识别。这个变量中包含了所要处理的含有项目文件的子目录的列表。这个项目文件的名称是和子目录同名的,这样qmake就可以发现它。例如,如果子目里是“myapp”,那么在这个目录中的项目文件应该被叫做myapp.pro
  • CONFIG关键字类型:配置变量指定编译器所要使用的选项和所需要被连接的库。配置变量中可以添加任何东西,但只有下面这些选项可以被qmake识别
CONFIG关键字内容释义
release应用程序将以release模式连编。如果“debug”被指定,它将被忽略
debug应用程序将以debug模式连编
warn_on编译器会输出尽可能多的警告信息。如果“warn_off”被指定,它将被忽略
warn_off编译器会输出尽可能少的警告信息
qt应用程序是一个Qt应用程序,并且Qt库将会被连接
thread应用程序是一个多线程应用程序
x11应用程序是一个X11应用程序或库
windows只用于“app”模板:应用程序是一个Windows下的窗口应用程序
console只用于“app”模板:应用程序是一个Windows下的控制台应用程序
dll只用于“lib”模板:库是一个共享库(dll)
staticlib只用于“lib”模板:库是一个静态库
plugin只用于“lib”模板:库是一个插件,这将会使dll选项生效

四、Qt元对象系统

  • Qt元对象系统简介:Qt元对象系统(Meta-Object System)提供了对象之间通信的信号与槽基址、运行时类型信息和动态属性系统
  • Qt元对象系统由以下三个基础组成
    • QObject类是所有使用元对象系统的类的基类
    • 在一个类的private部分声明Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性、信号与槽
    • MOC(元对象编辑器)为每个QObject的子类提供必要的代码来实现元对象系统的特性;构建项目时,MOC工具读取C++源文件,当它发现类的定义里有Q_OBJECT宏时,它就会为这个类生成另外一个包含有元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被编译和连接

五、Qt基本模块

模块描述
Qt CoreQtCore模块是所有基于Qt的应用程序的基础,其他模块使用的核心非图形类。提供信号与槽的对象间通信机制,并发和多线程,容器,事件系统,插件和I/O设施
Qt GUI最重要的GUI模块。图形用户界面 (GUI) 组件的基类。包括 OpenGL
Qt widgets用于构建GUI界面的C++图形组件类,包含基于GUI应用程序的典型小部件类和QSceneGraph类。在Qt 5中从QtGui中分离出来
Qt Multimedia音频、视频、广播和相机功能类
Qt Multimedia Widgets实现多媒体功能得到界面组件类
Qt Network使用网络编程更简单和轻便的类
Qt QMLQt QML模块用于QML和JavaScript语言
Qt Quick该模块用于使用QML2编写的GUI应用程序。用于构建具有自定义用户界面的高度动态应用程序的声明性框架
Qt Quick Controls提供轻量级 QML 类型,用于为桌面、嵌入式和移动设备创建高性能用户界面。这些类型采用简单的样式架构并且非常高效
Qt Quick Dialogs用于从 Qt Quick 应用程序创建系统对话框并与之交互的类型
Qt Quick Layouts用于在Qt Quick中安排项目的布局
Qt SQL包含使用SQL进行数据库集成的类
Qt Test用于单元测试 Qt 应用程序和库的类。注意:二进制兼容性保证不适用于 Qt 测试。但是,它将保持源兼容

六、项目新建

1 - 新建项目

  • 新建项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2 - 使用vs打开项目

  • 使用vs打开项目

    • qml的ui部分建议在qt中开发
    • 调试的话可以选择vs,更易于调试
  • 新建bat文件生成vs项目文件qmake -tp vc DemoProl.pro(使用qmake根据当前的.pro文件生成适应于Visual Stdio的工程文件)
    在这里插入图片描述
    在这里插入图片描述

  • win10下运行bat设置:系统环境变量中添加变量名 -> %path%,变量值 -> C:/windows/system32

  • 运行GeneVS.bat报错
    在这里插入图片描述

  • 设置cl.exe的环境变量:到电脑中搜索cl.exe;我电脑的路径是D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64;在环境变量 -> 系统 -> PATH中添加路径即可

  • 使用VS打开工程文件.vcxproj
    在这里插入图片描述

3 - QT的继承体系

  • QGuiApplication app(argc, argv);:在main.cpp中可以看到 app是QGuiApplication类,查看源码发现QGuiApplication继承QCoreApplication,并且使用了宏Q_OBJECT;而QCoreApplication继承了QT的基类QObject

在这里插入图片描述
在这里插入图片描述

  • QQmlApplicationEngine engine:QQmlApplicationEngine继承了QQmlEngine,并且也使用了宏Q_OBJECT;QQmlEngine继承了QJSEngine;QJSEngine最终继承了QT的基类QObject
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4 - vs运行项目

  • 以下报错的解决方案:项目 -> 重定解决方案目标
1>------ 已启动生成: 项目: DemoProl, 配置: Debug x64 ------
1>D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: 找不到 Windows SDK 版本8.1。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
1>已完成生成项目“DemoProl.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0==========

在这里插入图片描述

5 - vs将默认编码调成UTF-8

  • 为什么需要修改为UTF-8:因为Qt中的默认编码为UTF-8,而且其他大部分的IDE编码均为UTF-8;而VS的默认编码为GB2312
  • vs将默认编码调成UTF-8:工具 -> 扩展和更新 -> 联机 -> 搜索force UTF-8(No BOM) -> 关闭vs后会自动进行安装 -> 重新打开项目即可
    在这里插入图片描述
  • 修改字符编码后可能会出现报错信息:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
解决方案:
1.修改字符编码格式 (推荐)
Visual Studio提供高级保存选项功能,它能指定特定代码文件的编码规范和行尾所使用的换行符。
在Visual Studio 2017中,该命令没有默认显示在“文件”菜单中。用户需要手工设置,才能显示该命令。
操作方法如下:

(1)单击“工具”|“自定义”命令,弹出“自定义”对话框。
(2)单击“命令”标签,进入“命令”选项卡。
(3)在“菜单栏”下拉列表中,选择“文件”选项。
(4)单击“添加命令”按钮,弹出“添加命令”对话框。
(5)在“类别”列表中,选择“文件”选项;在“命令”列表中,选择“高级保存选项”选项。
(6)单击“确定”按钮,关闭“添加命令”对话框。
(7)选中“控件”列表中的“高级保存选项”选项,单击“上移”或者“下移”按钮,调整该命令的位置。
(8)单击“关闭”按钮,完成“高级保存选项”命令的添加操作。
(9)打开“文件”菜单下的“高级保存选项”,设置编码 Unicode(utf-8带签名)- 代码页 65001
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无休止符

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值