Qt 6.2 beta版本发布:恢复Qt6尚未支持的模板,改进Qt Quick 3D ,用户体验更炫酷

Qt 6.2 版本提供了多项新功能,例如 3D 粒子,让您可以使用 Qt Quick 3D 创建激动人心的 3D 用户体验。除了新功能之外,Qt 6.2 还恢复了对 Qt 6 以前尚未提供的更多附加模块的支持。

新模块:

  • 添加 QtQuick.Dialogs 模块。这为 Qt 没有本机对话框的平台提供了带有 Qt 快速回退的本机对话框。目前 FileDialog 和 FontDialog 可用,在未来的版本中将添加更多。

以下附加模块可用,但在 6.1 中不存在:

  • Qt蓝牙
  • Qt多媒体
  • Qt NFC
  • Qt定位
    • Qt 定位模块已移植到 Qt 6 和 CMake 构建系统。
    • 许多属性现在是可绑定的。
    • 将 QGeoPolygon::path() 重命名为 QGeoPolygon::perimeter。
    • QGeoLocation 现在使用 QGeoShape 而不是 QGeoRectangle 作为边界区域。
    • 多个定位类中的 error() 信 重命名为 errorOccurred()。
    • 删除了 QGeoPositionInfoSourceFactoryV2,并且 QGeoPositionInfoSourceFactory 现在支持创建对象的自定义参数。
    • NMEA 支持已重新设计。serialnmea 插件重命名为nmea,现在支持从 TCP 套接字或原始文件读取输入流。该nmeaSource财产被删除。
  • Qt 远程对象
    • Qt RemoteObjects 模块已移植到 Qt 6 和 CMake 构建系统。
  • Qt 传感器
  • Qt串行总线
    • Qt SerialBus 模块已移植到 Qt 6 和 CMake 构建系统。
    • QCanBusFactory 已被删除,QCanBusFactoryV2 已重命名为 QCanBusFactory。
    • QModbusRtuSerialSlave 和 QModbusRtuSerialMaster 已更名为 QModbusRtuSerialServer 和 QModbusRtuSerialClient,新名称应在新代码中使用。
  • Qt 串口
  • Qt 络频道
    • Qt WebChannel 模块已移植到 Qt 6 和 CMake 构建系统。
    • QWebChannel 属性现在是可绑定的。
    • QWebChannel 的属性更新间隔可以配置。它仍然默认为 50 毫秒。
    • QWebChannel 支持 BINDABLE 属性的属性更新。但是,如果主机属性没有 NOTIFY 信 ,则客户端不会提供通用回调机制。
    • 现在可以正确处理来自不同线程中对象的信 (QTBUG-51366)
  • Qt 络引擎
    • Qt WebEngine 模块已移植到 Qt 6 和 CMake 构建系统。
    • Qt Quick 的 Qt WebEngine 子模块已从 QtWebEngine 重命名为 QtWebEngineQuick
    • 几个类已从 QtWebEngineWidgets 移动到 QtWebEngineCore,包括 QWebEnginePage
    • 以前只能通过从 QWebEnginePage 派生访问的某些功能现在可以使用同步信 访问。
  • Qt 络套接字
    • Qt WebSockets 模块已移植到 Qt 6 和 CMake 构建系统。
  • Qt 页视图
    • Qt WebView 模块已移植到 Qt 6 和 CMake 构建系统。

新功能(在现有模块内)

Qt Core

  • 添加
    • QByteArrayView::compare()。
    • QFlags::test(Any)Flag(s) 方法。
    • QHashSeed,控制散列(种子现在是 size_t);这将取代 qGlobalQHashSeed 和 qSetGlobalQHashSeed。
    • PRIxQTDATATYPE 宏以促进 printf() 样式的格式化,无需强制转换或警告。
    • QCoreApplication 的权限 API(用于访问相机、文件系统、设备上的 络)。
  • 许多属性现在是可绑定的。
  • 字素簇现在可以处理表情符 。
  • Windows 上的 UNC 路径和 络共享现在得到一致处理。
  • QCalendar 现在支持从自定义后端的 ID 构建。
  • QChar、QPoint 和 QPointF 现在是原始的,而不仅仅是可重定位的。
  • QCoreApplication 的 exit() 现在就像 quit() 一样,是一个槽(正如文档长期以来所声称的那样);QEventLoop 和 QThread 相同。
  • QDateTime 现在考虑了 time_t 范围内的时区(只要平台提供此类信息),而不是人为地将范围限制为 1970-2037。
  • QFlags 已经充实了它的值类型行为(现在被更系统地使用)。
  • 在为 C++20 构建时,QList(因此也是 QVector)现在是满足 contiguous_range 的 contiguous_iterator。
  • QLocalSocket::waitFor*() 现在支持 Windows 上的双工操作(就像他们在 Unix 上已经做的那样)。
  • QLockFile 的方法现在具有 std::chrono 重载(并避免在 UTC 和本地时间之间进行不必要的转换)。
  • QString 现在可以从 char8_t 构建(如果可用)。
  • QThreadPool 的线程优先级现在是可配置的;并且线程共享池的名称(如果有)。

……并且对文档进行了大量整理、错误修复和改进。

图形界面

  • 为 16 位和 32 位浮点数添加到 QImage 的浮点图像格式。
  • 将 RGB 图像转换为,或将 RGB 颜色绘制到灰度图像上,现在经过伽马校正,并在输入颜色空间的亮度值中产生。

Qt Quick

  • 通过为其分配 ItemSelectionModel 添加了对在 TableView 中选择单元格的支持

Qt QuickControls

  • 添加了新控件:SelectionRectangle。此控件可用于通过使用样式选择矩形选择 TableView 中的单元格。

Qt Widgets

Qt 络

  • QSslSocket
    • TLS 后端,以前 (Qt 6.1) 转换为类似插件的类,现在移出 QtNetwork 并成为真正的插件。
    • 多个 TLS 后端可能在运行时共存,例如 OpenSSL 和 Schannel,或 OpenSSL 和 SecureTransport。
  • QNetwork信息
    • 引入了 isBehindCaptivePortal,这是一个新属性,可用于查看用户是否通过强制 络门户连接到 络。

QtQml

  • 核心语言
    • 添加了对可选链接的支持
    • 添加为强制转换:那些主要有助于工具,但也可用于替换 ( return (obj instanceof Item) obj.width : 42 vs (obj as Item)width 42 )实例的一些用法
  • QML 模块的公共 CMake API (qt_add_qml_module)
    • 负责生成 qmldir 和 qmltypes
    • 如果插件只注册类型,可以自动创建插件
    • 对 linting 目标的内置支持
  • 工装
    • qmlint
      • 添加了对精细设置警告严重性的支持,从完全禁用它们到仅提供信息,再到导致非零退出代码
      • 添加了用于逐个目录配置警告级别的设置文件 (.qmllint.ini)。可以使用 qmlint –write-defaults 生成默认设置文件
      • 现在可以通过注释在块中禁用警告(//qmlint enable/disable <warning-type1> <warning-type2…>)
      • linting 文件时大大提高了性能,尤其是在对具有大量导入的多个文件进行 linting 时
      • 添加了用于工具的 JSON 输出
    • 格式
      • qmlformat 现在使用我们新的 qmldom 库,因此通常应该产生更好的输出

Qt Quick3D

Qt 6.2  beta版本发布:恢复Qt6尚未支持的模板,改进Qt Quick 3D ,用户体验更炫酷
  • 实例化渲染,一种使用不同变换绘制同一对象的多个实例的优化方法。
  • 3D 粒子,一种用于向 3D 场景添加粒子效果的 API。这包括模型混合粒子的技术预览,计划在 6.3 中完成。
  • 3D 中 2D 项目的 Qt 快速输入事件(在场景和纹理中)
  • 用于从场景中的任意点进行基于光线的拾取的附加 API
  • 运行时加载器
    • 可以在运行时加载 glTF2 文件
  • 视差遮挡贴图:无需添加几何体即可使用高度图
  • 材质上的深度绘制模式:启用对材质是否以及何时进行深度渲染的精细控制。

Qt 数据可视化

Qt 6.2  beta版本发布:恢复Qt6尚未支持的模板,改进Qt Quick 3D ,用户体验更炫酷
  • 背景渲染模式已修复。
  • RenderDirectToBackground_NoClear 已弃用,因为在 Qt 6.x 中不可以选择不清除窗口。
  • 许多小错误修复。

图表

Qt 6.2  beta版本发布:恢复Qt6尚未支持的模板,改进Qt Quick 3D ,用户体验更炫酷
  • QScatterSeries 和 Qlegend 中提供了更多标记形状可供选择。
  • 为 QXYSeries 和 Qlegend 添加了光标记功能。这是点的较轻重量渲染。
  • 添加了通过对 QXYSeries 和 QBarSet 的方法调用来选择系列中点的功能。
  • 添加了设置颜色或使用自定义光标记的功能,以用于 QXYSeries 中的选定点。
  • 添加了设置用于 QBarSet 中选定条形的颜色的功能。
  • 添加了通过添加到 QXYSeries 的新方法显示 QXYSeries 的最佳拟合线的功能。
  • 向 QXYSeries 添加了自定义系列中单个点外观的功能。该功能允许设置点可见性、点标签可见性和点大小。
  • 向 QXYSeries 添加了方法“sizeBy”,该方法根据传递的值调整系列中点的大小。
  • 向 QXYSeries 添加了“colorBy”方法,该方法根据传递的值和梯度调整系列点的颜色。
  • 添加了一个新的轴类 QColorAxis 以支持 colorBy 功能,显示色标。
  • 添加了禁用轴中标签截断的功能。
  • 通过缓存最近使用的文本边界来提高性能。
  • 通过 setInteractive 方法为 Qlegend 添加了交互式支持。启用后,允许双击分离图例,分离后,在图表上拖动和调整大小。然后可以通过将图例拖离边缘来自动将图例附加到图表的边缘。
  • 向 Qlegend 添加了 attachToChartChanged 信 。
  • 更新了图例示例。

平台变化

桌面

移动

安卓

  • 之前在 QtAndroidExtras 下的(例如 sdkVersion()、context() 等)QtAndroid 命名空间下的一些调用现在在 QNativeInterface::QAndroidApplication ( QTBUG-90496 ) 下。
  • 可以通过新的 API ( QTBUG-90498 )请求权限。
  • 其余的 QtAndroidExtras API 将作为 qtbase 下的私有 API 保留,直到有明确的跨平台替代方案(例如 Intent、服务等)(QTBUG-93689)。
  • 删除了 Ministro 死代码,因为它不受 Android 支持 ( QTBUG-85201 )。
  • 简化AndroidManifest.xml文件,只包含用户相关的标签,去掉用户不需要维护的杂乱(补丁链接)。
  • QCDebug() 和朋友在 Android logcat ( QTBUG- 94708 ) 中使用类别作为标签。
  • 将 Android Gradle 插件更新到 4.1.3(补丁链接)。

有关 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或者扫描下方二维码即可加入

Qt 6.2  beta版本发布:恢复Qt6尚未支持的模板,改进Qt Quick 3D ,用户体验更炫酷

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月4日
下一篇 2021年6月4日

相关推荐

发表回复

登录后才能评论