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

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

前言

首先回顾下:在MFC中使用Qt(一):玩腻了MFC,试试在MFC中使用Qt!(手动配置编译Qt)

提到的手动编译问题:
①每次新建/添加的Qt文件,都需要手动配置自定义生成工具以添加Qt编译工具的编译流程。
②通过Qt编译工具编译输出的文件,需要手动添加到项目中。

首先需要确定的是上面在MFC中使用Qt(一):玩腻了MFC,试试在MFC中使用Qt!(手动配置编译Qt)
手动编译提到的
步骤①:两个文件(qmfcapp.h、qmfcapp.cpp)、两行代码(QMfcApp::instance(this); QMfcApp::run(this);)配置Qt环境。

在自动编译流程中也是必不可少的!!!

然后可通过以下三种方式代替后续步骤实现Qt自动编译流程。

方式一(推荐):借助Qt Visual Studio Tools​,直接将项目标记为Qt项目。

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

方式三:使用属性表(Property Sheet)实现自动化Qt编译流程。

本文将详细介绍方式1:借助Qt Visual Studio Tools​实现自动编译 。

借助Qt Visual Studio Tools​实现自动编译

我这里新建了一个MFC对话框项目MFCWithQtAuto,尝试方式一。

新建MFCWithQtAuto如下:
1
正常编译运行:
2

步骤①配置Qt环境

3
4
5
接着进行后续步骤。

将项目标记为Qt项目。

右键项目 → ​Qt → Convert Custom Build Steps to Qt/MSBuild。

此步骤会将 Qt 的 MOC/UIC/RCC 生成规则集成到项目中。
6
一会可以看到提示转换成功:
7
在项目属性中也有看到多出来Qt相关的配置:
8

配置 Qt 版本

右键项目 → ​Qt Project Settings → 添加所需的 Qt 版本路径(如 C:\Qt\5.15.2\msvc2019_64)。
9
选择自己的Qt版本:
10
这里可以编译下确认没有问题:
11
通过输出窗口,可以看到有Qt工具介入编译。

添加Qt文件

右键项目 → ​Add → New Item → 选择 ​Qt Class、Qt Widget 等模板。

此时 Qt VS Tools 会自动配置 MOC 规则,生成的 moc_*.cpp 文件会被自动包含到项目。

新建Qt类,这里新建一个MDialog自定义控件:
12
13
14
可以看到新建的文件已在项目中:
15
在ui文件中添加一些标识,标识这是一个Qt对话框
16
最后同样在MFC窗口中新建一个Qt弹窗按钮,通过点击按钮显示刚刚新建的Qt对话框:
17
18
可以看到输出窗口中的Qt编译流程:
19
点击Qt对话框按钮测试,可以看到没有问题:
20
至此,借助Qt Visual Studio Tools​实现自动编译的完整流程介绍完毕,相较于上文中的手动编译流程,顿时感觉简单了许多。

总结

借助Qt Visual Studio Tools​实现自动编译方式,简单快捷,且没有如手动编译流程中提到的(配置本地Qt包含目录、附加库目录、导入库、再手动添加编译后的文件等)众多手动介入的配置,因此这里是推荐使用该方法实现在MFC中使用Qt的

当然,也可以对比下后续文章介绍的:

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

方式三:使用属性表(Property Sheet)实现自动化Qt编译流程。

相关文章:

  • 虚拟机Vmware无法连接网络
  • FFmpeg开发学习:AVFormatContext结构体
  • 【大模型基础_毛玉仁】3.4 Prompt 技巧
  • 深度学习四大核心架构:神经网络(NN)、卷积神经网络(CNN)、循环神经网络(RNN)与Transformer全概述
  • C++的IO流
  • hackmyvm-jan
  • 如何在 React 项目中使用React.lazy和Suspense实现组件的懒加载?
  • Linux进程间的通信
  • 如何将3DMax模型转换到Blender?
  • 51单片机
  • 基于代理(http\https\socks)的网络访问逻辑重定义
  • 基于本人的专利设计三角形式的三组定子和中间的分形转子结构
  • 海外营收占比近4成,泡泡玛特全球化战略迎收获期
  • 33.[前端开发-JavaScript基础]Day10-常见事件-鼠标事件-键盘事件-定时器-案例
  • C++ 继承:面向对象编程的核心概念(二)
  • 中文字符计数器,助力所有python对齐业务(DeepSeek代笔)
  • 青藏高原湖泊的数量越来越多
  • Mem0 Prompt优化
  • 从手机到机器人:vivo 凭借用户主义重构科技价值
  • 旋转式花键在哪些工业领域应用较为广泛?
  • 美国将与阿联酋合作建立海外最大的人工智能数据中心
  • 澳大利亚首例“漂绿”诉讼开庭:能源巨头因“碳中和”承诺遭起诉
  • 92岁上海交大退休教师捐赠百万元给学校,其父也曾设奖学金
  • 美叙领导人25年来首次会面探索关系正常化,特朗普下令解除对叙经济制裁
  • 中科飞测将投资超10亿元,在上海张江成立第二总部
  • “女硕士失踪13年生两孩”案进入审查起诉阶段,哥哥:妹妹精神状态好转