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

QT 5升级到 Qt 6 使用 Clazy 检查将 C++ 应用程序移植到 Qt 6

本文介绍了两种将Qt 5应用程序升级到Qt 6的方法:一是使用Clazy框架提供的专用检查工具(如qt6-deprecated-api-fixes等),这些工具能帮助识别和修复Qt 5到Qt 6的兼容性问题;二是建议先将应用程序更新至Qt 5.15,并通过定义QT_DISABLE_DEPRECATED_UP_TO宏来禁用已废弃的API,以减少移植难度。两种方法均需注意API变更和兼容性处理,确保顺利迁移到Qt 6。

我这里是摘抄了QT官网的内容,给出了引用的网址,这都是官方权威的信息:

我在QT官网看到有如何将C++应用程序升级到QT 6的工具:

使用 Clazy 检查将 C++ 应用程序移植到 Qt 6

我们在 Clazy 框架内实施了一些检查和修复,以帮助您将应用程序从 Qt 5 移植到 Qt 6。用他们自己的话说"Clazy 是一个编译器插件,它允许 clang 理解 Qt 语义。请获取 Clazy(https://invent.kde.org/sdk/clazy) 并继续阅读,以便更顺利地移植到 Qt 6。

Clazy 检查可在编译过程中作为插件运行,也可使用clazy-standalone 通过 JSON 编译数据库运行。修正会在稍后应用,使用clang-apply-replacements 。

专用于 Qt 6 移植的 Clazy 检查
以下检查专门用于简化从 Qt 5 到 Qt 6 的移植。

qt6-deprecated-api-fixes
qt6-header-fixes
qt6-qhash-signature
qt6-fwd-fixes
missing-qobject-macro
这些检查必须在 Qt 5 中运行。修正后的代码只能在 Qt 6 中编译。因此,必须一次性运行上述检查。Clazy 建议一次只运行一个测试,以避免在应用修复时发生冲突。

网址

https://doc.qt.io/qt-6/zh/porting-to-qt6-using-clazy.html

移植到 Qt 6

从上一版本 Qt 5 到 Qt 6,Qt 有许多变化。在升级到 Qt 6 之前,请确保您的 Qt 5 应用程序已更新到 Qt 5.15。在移植到 Qt 6 时,最新的 Qt 5 版本变化最少。不过,Qt 5.15 中标记为过时或废弃的 API 可能已在 Qt 6 中删除。

如果您要将 Qt 5 应用程序移植到 Qt 6,应检查以下事项。

禁用在 Qt 5.15 中被弃用的 C++ API
使用 Qt 中已废弃的 API 通常会以编译器警告的形式出现。您也可以通过在构建系统中定义QT_DISABLE_DEPRECATED_UP_TO C++ 宏,使使用成为错误。要禁用任何在 5.15 或更旧 Qt 版本中被弃用的 API,请将宏定义为0x050F00 ,即用十六进制数字编码的 “5.15.0”。

例如,在 qmake 项目文件中,定义宏为:

DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00

在 CMake 中,可以使用 add_compile_definitions:

add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)

Qt 5.15 过时的 C++ 类
Qt 5.15 过时的 QML 类型
Qt 6 过时的 C++ 类
Qt 6 过时的 QML 类型

网址:

https://doc.qt.io/qt-6/zh/portingguide.html

http://www.jsqmd.com/news/1125671/

相关文章:

  • 生命涌现的小龙虾技能之【Cat Face Recognition Skill | 猫脸识别技能】简介
  • 每个按键都能单独屏蔽!这款免费小工具,治好了我的误触强迫症
  • 客户拜访录制了需求沟通短视频,2026教你搞定短视频文字提取难题
  • 速卖通商品信息自动翻译实现方案
  • 基于YOLO与边缘计算的垃圾自动分类系统:从数据到部署全流程实践
  • 新人接手老仓库最怕没人带:用 Codex / Claude Code 先画一张代码地图
  • 2026智能门锁避坑白皮书:从“参数内卷”到“6条标准”,不花冤枉钱的选购清单
  • 终极免费音频编辑解决方案:Audacity 完整指南
  • 每日热门skill:你的OpenClaw还在“闭着眼“搜索?Desearch这套去中心化引擎,让AI搜索质量飙到92.6%
  • 终极GitHub下载加速指南:3分钟解决国内访问缓慢问题
  • 虚拟化技术深度解析:从底层原理到产业实践,读懂云计算的核心基石
  • 视频剪辑神器,免费实用
  • ARIMA 模型定阶实战:基于 ACF/PACF 图的 4 种典型模式识别与 p, q 值选择
  • 安卓手游画质助手 解锁VIP功能「Android」
  • CubeSandbox 线下体验
  • 终极STL转STEP转换指南:5分钟实现3D格式无缝对接
  • python教程入门(二、第一个python程序)
  • 智能场假说:共振动力学与物理具身的统一框架(源自实验室科研工作感触)
  • 终极解决Realtek 8922AE WiFi 7网卡驱动问题的完整实战指南
  • 电脑磁盘分区|C盘爆红|实现过程中出现的问题并解决
  • 2026最新:3款免费抖音视频提取工具,亲测实用零成本适合开发者
  • JDBC 进阶 API 补充
  • hypermesh两个网格参数解析
  • mcntools - Minecraft 模组 JAR 文件硬编码翻译工具
  • 备孕辅酶Q10选还原型还是氧化型?高仕星辅酶Q10成分全解
  • 从代码补全到工作空间智能体:Codex范式重塑AI编程工作流
  • 【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
  • 牛计数数据集 | 3300张YOLO智慧畜牧数据集
  • 汽车行业变革:中国车企速度领先,欧洲开源联盟能否逆袭?
  • GitHub 热榜项目 - 周榜(2026-07-04)