当前位置: 首页 > wzjs >正文

名匠装饰多少钱一平方关键词优化系统

名匠装饰多少钱一平方,关键词优化系统,wordpress建群站,出售外链前言 回顾下前面介绍的: 在MFC中使用Qt(一):玩腻了MFC,试试在MFC中使用Qt!(手动配置编译Qt) 在MFC中使用Qt(二):实现Qt文件的自动编译流程 本文…

前言

回顾下前面介绍的:
在MFC中使用Qt(一):玩腻了MFC,试试在MFC中使用Qt!(手动配置编译Qt)

在MFC中使用Qt(二):实现Qt文件的自动编译流程

本文将详细介绍方式二:通过编辑项目文件(.vcxproj)实现自动化Qt编译流程。

通过编辑项目文件(.vcxproj)实现自动化Qt编译流程

这里再新建一个MFC对话框项目MFCWithQtAuto2,尝试方式二。

新建MFCWithQtAuto2,编译运行确认没有问题:
1

步骤①配置Qt环境(必不可少!)

2
3

步骤②配置项目

因为不像在MFC中使用Qt(二):实现Qt文件的自动编译流程 那样,将项目标记成Qt项目,编辑项目文件(.vcxproj)实现自动化Qt编译流程方式,本质还是MFC项目。

因此在项目属性中添加要使用的本地Qt模块的包含目录、附件库目录和库文件:
4
5
6
配置完成后,编译运行,确认没有问题:
7

接着编辑项目文件(.vcxproj),代替手动编译流程中的③④步骤

①编辑项目文件(.vcxproj)

右键项目 → ​Unload Project:
8
9
在最后一个后面追加以下内容:

  <!-- 自动包含 所有目录下的 .ui 、moc、qrc文件 --><ItemGroup><UIFiles Include="**\*.ui" /></ItemGroup><!-- 自定义构建步骤,编译 .ui 文件为 .h 文件 --><ItemGroup><CustomBuild Include="@(UIFiles)"><Command>"uic.exe" %(FullPath) -o $(ProjectDir)GeneratedFiles\uic\ui_%(Filename).h</Command><Outputs>$(ProjectDir)GeneratedFiles\ui_%(Filename).h</Outputs></CustomBuild></ItemGroup><!-- 自动包含 所有目录下的 带Q_OBJECT宏的.h 文件。因无法区分普通的C++.h,因此需要在一个目录(这里是qt/UI目录)中统一管理 --><ItemGroup><MocFiles Include="$(ProjectDir)qt\UI\*.h" /></ItemGroup><ItemGroup><CustomBuild Include="@(MocFiles)"><Command>"moc.exe" "%(FullPath)" -o "$(ProjectDir)GeneratedFiles\moc\moc_%(Filename).cpp"</Command><Outputs>$(ProjectDir)GeneratedFiles\moc_%(Filename).cpp</Outputs></CustomBuild></ItemGroup><ItemGroup><!-- 自动包括所有的 .qrc 文件 --><QrcFiles Include="**\*.qrc" /></ItemGroup><ItemGroup><CustomBuild Include="@(QrcFiles)"><Command>"rcc.exe" "%(FullPath)" -o "$(ProjectDir)GeneratedFiles\rcc\qrc_%(Filename).cpp"</Command><Outputs>$(ProjectDir)GeneratedFiles\qrc_%(Filename).cpp</Outputs></CustomBuild></ItemGroup><ItemGroup><ClCompile Include="$(ProjectDir)GeneratedFiles\moc\moc_*.cpp"><PrecompiledHeader>NotUsing</PrecompiledHeader></ClCompile><ClCompile Include="$(ProjectDir)GeneratedFiles\rcc\qrc_*.cpp"><PrecompiledHeader>NotUsing</PrecompiledHeader></ClCompile></ItemGroup>

这里逐个解析一下这段配置作用:
1)处理 UI 文件(.ui → .h)​

<ItemGroup><UIFiles Include="**\*.ui" /> <!-- 扫描所有目录下的 .ui 文件 -->
</ItemGroup><ItemGroup><CustomBuild Include="@(UIFiles)"><Command>"uic.exe" %(FullPath) -o $(ProjectDir)GeneratedFiles\uic\ui_%(Filename).h</Command><Outputs>$(ProjectDir)GeneratedFiles\ui_%(Filename).h</Outputs></CustomBuild>
</ItemGroup>

​作用:使用 uic.exe(Qt UI 编译器)将 .ui 文件转换为 ui_*.h 头文件。
输出路径:GeneratedFiles\uic\ 目录下生成 ui_文件名.h
示例:MDialog.ui → GeneratedFiles\uic\ui_MDialog.h

2)处理 MOC 文件(含 Q_OBJECT 的 .h → .cpp)​

<ItemGroup><MocFiles Include="$(ProjectDir)qt\UI\*.h" /> <!-- 仅扫描 qt\UI 目录下的头文件 -->
</ItemGroup><ItemGroup><CustomBuild Include="@(MocFiles)"><Command>"moc.exe" "%(FullPath)" -o "$(ProjectDir)GeneratedFiles\moc\moc_%(Filename).cpp"</Command><Outputs>$(ProjectDir)GeneratedFiles\moc_%(Filename).cpp</Outputs></CustomBuild>
</ItemGroup>

作用:使用 moc.exe(Qt 元对象编译器)处理含 Q_OBJECT 宏的头文件,生成 moc_*.cpp 元对象代码。
输出路径:GeneratedFiles\moc\ 目录下生成 moc_文件名.cpp。
限制:仅处理 qt\UI (后续应用替换成自己项目指定的目录)目录下的头文件,避免扫描无关文件(如系统头文件)。
示例:qt/UI/MWidget.h → GeneratedFiles\moc\moc_MDialog.cpp

3)处理资源文件(.qrc → .cpp)

<ItemGroup><QrcFiles Include="**\*.qrc" /> <!-- 扫描所有目录下的 .qrc 文件 -->
</ItemGroup><ItemGroup><CustomBuild Include="@(QrcFiles)"><Command>"rcc.exe" "%(FullPath)" -o "$(ProjectDir)GeneratedFiles\rcc\qrc_%(Filename).cpp"</Command><Outputs>$(ProjectDir)GeneratedFiles\rcc\qrc_%(Filename).cpp</Outputs></CustomBuild>
</ItemGroup>

作用:使用 rcc.exe(Qt 资源编译器)将 .qrc 文件编译为 qrc_*.cpp,嵌入二进制资源(如图标、字体)。
输出路径:GeneratedFiles\rcc\ 目录下生成 qrc_文件名.cpp。
示例:resources.qrc → GeneratedFiles\rcc\qrc_resources.cpp

4)自动包含生成的文件到编译

<ItemGroup><ClCompile Include="$(ProjectDir)GeneratedFiles\moc\moc_*.cpp"><PrecompiledHeader>NotUsing</PrecompiledHeader></ClCompile><ClCompile Include="$(ProjectDir)GeneratedFiles\rcc\qrc_*.cpp"><PrecompiledHeader>NotUsing</PrecompiledHeader></ClCompile>
</ItemGroup>

作用:将生成的 moc_.cpp 和 qrc_.cpp 文件自动包含到项目编译中。
关键设置:<PrecompiledHeader>NotUsing</PrecompiledHeader> 表示这些文件不使用预编译头文件。

5)输出路径管理
所有生成的文件统一存放在 GeneratedFiles 目录的子文件夹中:

GeneratedFiles/
├── uic/         # UI 生成的头文件(ui_*.h)
├── moc/         # MOC 生成的元对象代码(moc_*.cpp)
└── rcc/         # 资源文件生成的代码(qrc_*.cpp)

优点:避免生成文件污染源码目录,便于版本控制忽略(通过 .gitignore 排除 GeneratedFiles)。
卸载项目并添加到项目配置文件中,位置在最后一个后追加:
10
重新加载项目,新建Qt类MDialog。

注意新建的文件会自动放在项目根目录,这里需要手动剪切到上面项目配置文件中指定的目录下:
11
同样在项目中添加同目录结构一样的筛选器:
12
虽然这里也要手动处理,但及时在正经的Qt项目中,也会在一个目录/筛选器中维护管理Qt类文件,因此不算是之前手动编译涉及的问题。

编译运行,同样没有毛病!!!
13
至此,通过编辑项目文件(.vcxproj)也能够解决手动编译问题:

①每次新建/添加的Qt文件,都需要手动配置自定义生成工具以添加Qt编译工具的编译流程。

②通过Qt编译工具编译输出的文件,需要手动添加到项目中。

实现Qt编译流程自动化!!!

总结

编辑项目文件(.vcxproj)实现自动化Qt编译流程方式,本质还是MFC项目。

因此相较于在MFC中使用Qt(二):实现Qt文件的自动编译流程

还是需要在项目属性中添加要使用的本地Qt模块的包含目录、附件库目录和库文件。

补充

Qt编译工具输出的.h头文件目录,需要手动配置包含目录:
14
当然也可以在配置文件中添加处理:

<AdditionalIncludeDirectories>GeneratedFiles\uic;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

添加后的完整配置:

<!-- 自动包含 所有目录下的 .ui 、moc、qrc文件 --><ItemGroup><UIFiles Include="**\*.ui" /></ItemGroup><!-- 自定义构建步骤,编译 .ui 文件为 .h 文件 --><ItemGroup><CustomBuild Include="@(UIFiles)"><Command>"uic.exe" %(FullPath) -o $(ProjectDir)GeneratedFiles\uic\ui_%(Filename).h</Command><Outputs>$(ProjectDir)GeneratedFiles\ui_%(Filename).h</Outputs></CustomBuild></ItemGroup><!-- 自动包含 所有目录下的 带Q_OBJECT宏的.h 文件。因无法区分普通的C++.h,因此需要在一个目录(这里是qt/UI目录)中统一管理 --><ItemGroup><MocFiles Include="$(ProjectDir)qt\UI\*.h" /></ItemGroup><ItemGroup><CustomBuild Include="@(MocFiles)"><Command>"moc.exe" "%(FullPath)" -o "$(ProjectDir)GeneratedFiles\moc\moc_%(Filename).cpp"</Command><Outputs>$(ProjectDir)GeneratedFiles\moc_%(Filename).cpp</Outputs></CustomBuild></ItemGroup><ItemGroup><!-- 自动包括所有的 .qrc 文件 --><QrcFiles Include="**\*.qrc" /></ItemGroup><ItemGroup><CustomBuild Include="@(QrcFiles)"><Command>"rcc.exe" "%(FullPath)" -o "$(ProjectDir)GeneratedFiles\rcc\qrc_%(Filename).cpp"</Command><Outputs>$(ProjectDir)GeneratedFiles\qrc_%(Filename).cpp</Outputs></CustomBuild></ItemGroup><ItemGroup><ClCompile Include="$(ProjectDir)GeneratedFiles\moc\moc_*.cpp"><PrecompiledHeader>NotUsing</PrecompiledHeader></ClCompile><ClCompile Include="$(ProjectDir)GeneratedFiles\rcc\qrc_*.cpp"><PrecompiledHeader>NotUsing</PrecompiledHeader></ClCompile></ItemGroup><ItemDefinitionGroup><ClCompile><!-- 添加新路径到现有包含目录列表 --><AdditionalIncludeDirectories>GeneratedFiles\uic;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories></ClCompile></ItemDefinitionGroup>

当然目前的配置都是默认Release x64环境,没有做Debug、Release,x64、x86的区分,若有需要可自行修改调整。


文章转载自:

http://4KjRPIsm.brrxz.cn
http://nQwTHRMp.brrxz.cn
http://LPlN4U9V.brrxz.cn
http://GZOZxaDn.brrxz.cn
http://v8o6wWST.brrxz.cn
http://iBWaC2Vu.brrxz.cn
http://w3OlSAwt.brrxz.cn
http://zLKf3W22.brrxz.cn
http://nTuk8dvi.brrxz.cn
http://yeK3GRea.brrxz.cn
http://rKtawjwW.brrxz.cn
http://3G9mGV2V.brrxz.cn
http://9eZjPk2O.brrxz.cn
http://MUfJ8AsW.brrxz.cn
http://T8QiWkYT.brrxz.cn
http://5VaK0JT8.brrxz.cn
http://7YLC8z1m.brrxz.cn
http://EAhotrNJ.brrxz.cn
http://gXVdMRmG.brrxz.cn
http://jYx82kxP.brrxz.cn
http://2GqtEAqx.brrxz.cn
http://Yau3tV66.brrxz.cn
http://e0vIaIRi.brrxz.cn
http://HxSnxapg.brrxz.cn
http://XPbmxwJP.brrxz.cn
http://RsDHmZHD.brrxz.cn
http://HJEKbLxV.brrxz.cn
http://Mdr8dvz7.brrxz.cn
http://TAllaWPG.brrxz.cn
http://dTdfj2sV.brrxz.cn
http://www.dtcms.com/wzjs/741739.html

相关文章:

  • 手机网站 qq代码wordpress与oss
  • 兰州做网站公司wordpress中文标签404
  • iis默认网站删除工程设计有限公司
  • html手机网站如何制作微信平台开发公司成都
  • 网站建设pdf微盘自考网站建设与实践
  • 黄浦区网站建设公司wordpress免费用户
  • 网站推广平台怎么做深圳网站营销公司简介
  • 网站维护很难吗网站程序制作
  • 南通网站建设系统方案莱芜在线老板是谁
  • 广东省建设厅网站首页淘宝客可道cms网站建设
  • 用织梦建手机网站上海企业建站网站的意义
  • 大连网站开发师网站建设推广语言
  • 新乡市做网站百度竞价排名规则及费用
  • 有字库wordpress宁波优化网站厂家
  • 做网站连带责任江苏苏州网站建设
  • 最新网站开发技术金乡网站建设公司
  • 英文的购物网站实业 东莞网站建设
  • 手机外贸网站建设自己搭建网站
  • 找外包公司做网站价钱用什么做网站的访问量统计
  • 辽宁省城乡建设规划院网站吐鲁番seo招聘
  • 做设计有哪些接私活的网站dede网站迁移步骤
  • 做一个自适应网站多少钱深圳便宜的网站建设
  • 网站改版后 搜索不到济南城市建设集团 网站
  • 做电影网站服务器应用公园制作app免费吗
  • 怎么做网站受众分析推广网站优化怎么做
  • 网站上做相关链接沈阳便宜做网站的
  • 网站这么做404页面泉州seo代理商
  • 网站流量查询漳州开发区人事人才网
  • 郑州哪里做网站汉狮灵犀科技网站开发
  • 甘肃兰州旅游必去十大景点电商网站建设优化