Изменения в датчиках Qt
Qt 6 — результат осознанных усилий по повышению эффективности и удобства использования фреймворка.
Мы стараемся поддерживать бинарную и исходную совместимость для всех публичных API в каждом релизе. Но некоторые изменения были неизбежны для улучшения Qt как фреймворка.
В этой теме мы обобщаем эти изменения в Qt Sensors и предоставляем руководство по их обработке.
Поддержка жестов датчиков
Поддержка жестов была удалена. В своем текущем виде жесты нуждаются в переосмыслении, чтобы быть более полезными для разработчиков. Следите за этим, пожалуйста, в QTBUG-95649.
Примечания к платформам
Windows
На Windows датчики поддерживаются в установках Qt, скомпилированных с MSVC.
sensorfw
У sensorfw пока нет порта под Qt 6, поэтому пока датчики в Qt 6 не поддерживаются.
TI Sensor Tag
Поддержка TI Sensor Tag удалена.
Удаленные датчики
QAltimeter, QDistanceSensor, QHolsterSensor и их аналоги QML больше не имеют реализации бэкэнда и были удалены.
QIRProximitySensor, QLidSensor и QTapSensor имеют только бэкэнд sensorfw, и поэтому в настоящее время они не указаны в качестве поддерживаемых типов датчиков.
Linux
Поддержка акселерометра в Linux sysfs была удалена. Бэкэнд не документирован и не обновлялся в течение почти 10 лет.
Изменения в API
Удален typedef для qtimestamp
Типовой дескриптор для исторического qtimestamp, из эпохи QtMobility, был удален. Используйте фактический тип quint64 напрямую.
Переименовано sensor тип строки в sensorType
Подклассы QSensor реализуют строку char const*, которая определяет строку, идентифицирующую базовый датчик. Эта статическая type переменная затеняла метод базового класса QSensor::type(), что приводило к ненужным ошибкам компиляции и последующим обходным путям. Строка type была переименована в sensorType.
Переименовано свойство LidReading::backLidChanged в backLidClosed
Имя свойства теперь согласовано со свойством frontLidClosed того же типа QML.
Добавлен параметр в QSensorBackend::sensorBusy() для возможности также очистки
состояния занятости
Свойство QSensor::busy и его метод доступа QSensor::isBusy() могут использоваться для проверки того, занят ли датчик или нет. Чтобы это свойство лучше отражало состояние бэкэнда датчика, QSensorBackend::sensorBusy() теперь принимает булевый параметр. Этот параметр busy используется для установки/снятия состояния занятости бэкэнда и уведомления присоединенного к нему интерфейса QSensor.
Значение по умолчанию для параметра QSensorBackend::sensorBusy() — true, что приводит к исходному поведению (кроме добавления эмиссии сигнала). Это означает, что в большинстве, если не во всех случаях, изменения необязательны. Вместо этого реализация каждого бэкэнда датчика должна самостоятельно решить, применимы ли эти изменения.
Свойства Sensor::type и QSensor::type помечены как константы
Свойство type не может меняться после создания экземпляра и помечено как константа как в C++, так и в QML.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtsensors-changes-qt6.html