Qt6现已发布:如何从Qt5移植到 Qt 6?|附下载

从之前的版本 Qt 5 到 Qt 6,Qt 有很多变化。在升级到 Qt 6 之前,请确保您的 Qt 5 应用程序已更新到 Qt 5.15(下载Qt5.15)。在移植到 Qt 6 时,最新的 Qt 5 版本的更改最少。但是,Qt 6.0 版本中可能已删除在 Qt 5.15 中标记为已弃用或过时的 API。

从之前的版本 Qt 5 到 Qt 6,Qt 有很多变化。在升级到 Qt 6 之前,请确保您的 Qt 5 应用程序已更新到 Qt 5.15(

Qt开发工具推荐:

  • QtitanRibbon| 下载试用: 遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart | 下载试用 :是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。并且支持所有主要的桌面操作系

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

禁用在 Qt 5.15 中弃用的 C++ API

在Qt中使用废弃的API通常会以编译器警告的形式出现。你也可以通过在你的构建系统中定义 QT_DISABLE_DEPRECATED_BEFORE C++ 宏来使这种使用成为错误。要禁用任何在5.15或更早的Qt版本中废弃的API,请将该宏定义为0x050F00,也就是编码为十六进制的 “5.15.0”。

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

DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x050F00

在 CMake 中,您可以使用 add_compile_definitions:

add_compile_definitions(QT_DISABLE_DEPRECATED_BEFORE=0x050F00)

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

检查对模块的更改

Qt 6版本的一个目标是保持一个精简的框架,这意味着在Qt 6中删除了一些Qt 5模块。在某些情况下,被废除的模块的API在另一个模块中可用。在未来 v6.2版本中,可能会添加新的或以前的模块。

  • Qt 6.0 中的新模块
  • Qt 6.0 中删除的模块
  • 对 Qt 模块的更改 – 每个 Qt 模块的更改列表

图形回归测试

QML 应用程序有一个新的图形后端,您应该测试它的回归。OpenGL 不再保证为目标平台上的默认值,您应该检查您的图形代码是否仍在创建您想要的相同效果。

仍然可以在 Qt 应用程序中使用 OpenGL 调用,但 OpenGL API 已移至Qt OpenGL模块。Qt Widgets 应用程序的图形后端与 Qt 5 相同。

  • 图形
  • Changes to Qt Quick – 对可能影响 Qt 5 应用程序的 Qt Quick 图形的更改

高 DPI

Qt 6支持所有平台上的高DPI显示器,并且在使用Qt Widgets或Qt Quick等更高级别的API时,将自动考虑显示器的分辨率。应用程序只需要提供高分辨率的资产,如图像和图标。该功能总是被启用。

Qt 6 将默认的比例因子舍入策略从 Qt::HighDpiScaleFactorRoundingPolicy::Round 改为 Qt::HighDpiScaleFactorRoundingPolicy::PassThrough,以便准确跟踪操作系统的 DPI 设置。使用 Qt Widgets 的应用程序可能会在非整数比例因子下遇到图形故障,例如在配置为 175% 的显示器的 Windows 下。在这种情况下,将四舍五入策略设置为圆形,以恢复Qt 5的行为。

使用平台集成 API

Qt 6 与目标平台上的原生 API 有更好的集成。您可以使用平台集成 API 来实现 Qt 未提供的原生行为。

  • 平台整合
  • Qt平台抽象
  • 支持的平台

使用移植工具

一个基于 Clazy 的工具可用于促进从 Qt 5 到 Qt 6 的移植:使用 Clazy 检查将 C++ 应用程序移植到 Qt 6。

有关 Qt 6 的更多信息

  1. Qt6.2版本发布:恢复Qt6.1版本中缺失的模块、并带来了对13个额外模块的支持
  2. C++跨平台框架Qt6第一个修复版本现已发布!
  3. c++开发框架Qt6:构建系统CMake详解
  4. Qt6.1教程:Qt Quick3D渲染实例
  5. 全面剖析Qt6新版构建系统CMake
  6. Qt里程碑事件——Qt6正式发布

====================================================

想要了解或购买Qt正版授权的朋友,欢迎咨询官方客服

Qt技术交流群现已开通,QQ搜索群号“765444821或者扫描下方二维码即可加入

Qt6现已发布:如何从Qt5移植到 Qt 6?|附下载

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月26日
下一篇 2021年5月26日

相关推荐

发表回复

登录后才能评论