对Qt Sensors
Qt 6 是我们努力使框架更高效、更易用的结果。
我们尝试在每个版本中保持所有公共 API 的二进制和源代码兼容性。但为了使 Qt 成为一个更好的框架,有些改动是不可避免的。
在本专题中,我们总结了Qt Sensors 中的这些变化,并提供了处理这些变化的指南。
传感器手势支持
手势支持已被移除。目前的手势需要重新思考,以便为开发人员提供更多帮助。如需跟踪,请参阅QTBUG-95649。
平台说明
Windows 平台
在 Windows 上,使用 MSVC 构建的 Qt 安装程序支持传感器。
sensorfw
sensorfw还没有 Qt 6 端口,因此 Qt 6 中的传感器还不支持sensorfw。
TI 传感器标签
已移除对 TI 传感器标记的支持。
已移除的传感器
QAltimeter、QDistanceSensor、QHolsterSensor 及其对应的 QML 不再有后台实现,因此已被移除。
QIRProximitySensor、QLidSensor 和 QTapSensor 只有 sensorfw 后端,因此目前未列为支持的传感器类型。
Linux
已删除 Linux sysfs 加速计支持。该后端没有文档,近 10 年来一直没有任何实际活动。
应用程序接口变更
删除了 qtimestamp 的类型定义
历史上 QtMobility 时代的qtimestamp
类型已被删除。请直接使用实际类型quint64
。
将sensor
类型字符串重命名为sensorType
QSensor 的子类实现了char const*
string,它定义了标识基本传感器的字符串。该静态type
字段对基类QSensor::type() 方法有阴影,导致不必要的编译错误和相应的变通方法。type
字符串现已更名为sensorType
。
将 LidReading::backLidChanged 属性重命名为backLidClosed
该属性名称现在与同一 QML 类型的frontLidClosed
属性一致。
为 QSensorBackend::sensorBusy() 添加了参数,以便也能清除
繁忙状态
QSensor::busy
属性及其访问器QSensor::isBusy()
可用于检查传感器是否繁忙。为使该属性更好地反映传感器后端的状态,QSensorBackend::sensorBusy() 现在接受一个布尔参数。该busy
参数用于设置/取消设置后端繁忙状态,并通知与之相连的QSensor 接口。
QSensorBackend::sensorBusy() 参数的默认值为true,这将导致原始行为(除了新增的信号发射)。这意味着在大多数情况下,即使不是所有情况,这些更改也不是强制性的。相反,应由各个传感器后端实现来决定这些更改是否有用。
标为常量的传感器::类型和 QSensor::type 属性
type
属性在实例化后不能更改,在 C++ 和 QML 中都标记为常量。
© 2025 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.