QSensorFilter Class

The QSensorFilter class provides an efficient callback facility for asynchronous notifications of sensor changes. More...

Header: #include <QSensorFilter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sensors)
target_link_libraries(mytarget PRIVATE Qt6::Sensors)
qmake: QT += sensors
Inherited By:
13 types

QAccelerometerFilter, QAmbientLightFilter, QAmbientTemperatureFilter, QCompassFilter, QGyroscopeFilter, QHumidityFilter, QLightFilter, QMagnetometerFilter, QOrientationFilter, QPressureFilter, QProximityFilter, QRotationFilter, and QTiltFilter

Public Functions

virtual bool filter(QSensorReading *reading) = 0

Protected Functions

virtual ~QSensorFilter()

Detailed Description

Some sensors (eg. the accelerometer) are often accessed very frequently. This may be slowed down by the use of signals and slots. The QSensorFilter interface provides a more efficient way for the sensor to notify your class that the sensor has changed.

Additionally, multiple filters can be added to a sensor. They are called in order and each filter has the option to modify the values in the reading or to suppress the reading altogether.

Note that the values in the class returned by QSensor::reading() will not be updated until after the filters have been run.

See also filter().

Member Function Documentation

[virtual noexcept protected] QSensorFilter::~QSensorFilter()

Notifies the attached sensor (if any) that the filter is being destroyed.

[pure virtual] bool QSensorFilter::filter(QSensorReading *reading)

This function is called when the sensor reading changes.

The filter can modify the reading.

Returns true to allow the next filter to receive the value. If this is the last filter, returning true causes the signal to be emitted and the value is stored in the sensor.

Returns false to drop the reading.

© 2024 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.