本页内容

变更内容Qt Sensors

Qt 6 的变更,是出于让框架更高效、更易于使用的有意识努力。

我们力求在每个版本中保持所有公共 API 的二进制和源代码兼容性。但为了使 Qt 成为更优秀的框架,某些变更在所难免。

在本主题中,我们将总结Qt Sensors 中的这些变更,并提供相应的处理指南。

传感器手势支持

手势支持功能已被移除。以当前形式来看,手势功能需要重新设计,才能为开发者带来更多价值。有关此问题的跟踪信息,请参阅QTBUG-95649。

平台说明

Windows

在 Windows 系统上,由 MSVC 编译的 Qt 安装包支持传感器功能。

sensorfw

sensorfw目前尚未移植到 Qt 6,因此 Qt 6 中的 Qt Sensors 模块尚不支持该库。

TI Sensor Tag

已移除对 TI Sensor Tag 的支持。

已移除的传感器

QAltimeter、QDistanceSensor、QHolsterSensor 及其对应的 QML 组件已不再具有后端实现,因此已被移除。

QIRProximitySensor、QLidSensor 和 QTapSensor 仅具有 sensorfw 后端,因此目前未被列为受支持的传感器类型。

Linux

已移除对 Linux sysfs 加速度计的支持。该后端未被记录在文档中,且近 10 年来一直没有任何实质性更新。

API 变更

删除了 qtimestamp 的 typedef

已移除历史遗留的(QtMobility 时代)qtimestamp 的 typedef 定义。请直接使用实际类型quint64 。

将sensor 类型的字符串重命名为sensorType

QSensor 的子类实现了char const* 字符串,该字符串用于标识基础传感器。此静态type 字段遮蔽了基类的QSensor::type() 方法,导致不必要的编译错误及随之而来的变通方案。type 字符串现已重命名为sensorType 。

将 LidReading::backLidChanged 属性重命名为backLidClosed

该属性名称现已与同类型 QML 中的frontLidClosed 属性保持一致。

在 QSensorBackend::sensorBusy() 中添加了参数,以便也能清除

繁忙状态

QSensor::busy 属性及其访问器QSensor::isBusy() 可用于检查传感器是否处于忙碌状态。为了使该属性更好地反映传感器后端的状态,QSensorBackend::sensorBusy()现在接受一个布尔参数。该busy 参数用于设置/取消后端的忙碌状态,并通知与其关联的QSensor 接口。

QSensorBackend::sensorBusy() 参数的默认值为true,这将导致与原有行为相同(除新增的信号发射外)。这意味着在大多数(若非全部)情况下,这些更改并非强制要求。具体是否采用这些更改,应由各个传感器后端实现自行决定。

标记为常量的 Sensor::type 和 QSensor::type 属性

type 属性在实例化后无法更改,并在C++和QML中均被标记为常量。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.