#进行注释| 关键字 | 释义 |
|---|---|
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关键字内容 | 释义 |
|---|---|
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关键字内容 | 释义 |
|---|---|
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 Core | QtCore模块是所有基于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 QML | Qt 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 测试。但是,它将保持源兼容 |







使用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

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


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 个 ==========

force UTF-8(No BOM) -> 关闭vs后会自动进行安装 -> 重新打开项目即可
解决方案:
1.修改字符编码格式 (推荐)
Visual Studio提供高级保存选项功能,它能指定特定代码文件的编码规范和行尾所使用的换行符。
在Visual Studio 2017中,该命令没有默认显示在“文件”菜单中。用户需要手工设置,才能显示该命令。
操作方法如下:
(1)单击“工具”|“自定义”命令,弹出“自定义”对话框。
(2)单击“命令”标签,进入“命令”选项卡。
(3)在“菜单栏”下拉列表中,选择“文件”选项。
(4)单击“添加命令”按钮,弹出“添加命令”对话框。
(5)在“类别”列表中,选择“文件”选项;在“命令”列表中,选择“高级保存选项”选项。
(6)单击“确定”按钮,关闭“添加命令”对话框。
(7)选中“控件”列表中的“高级保存选项”选项,单击“上移”或者“下移”按钮,调整该命令的位置。
(8)单击“关闭”按钮,完成“高级保存选项”命令的添加操作。
(9)打开“文件”菜单下的“高级保存选项”,设置编码 Unicode(utf-8带签名)- 代码页 65001