Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

Creating a sensor plugin#

How a Sensor Plugin is Loaded#

Since sensor backends are created on demand, the sensor plugin is loaded and asked to register the sensor backends it handles. The plugin should implement registerSensors() and call registerBackend() to register available backends. Typically the plugin will also inherit from QSensorBackendFactory and implement createBackend() in order to instantiate backends it has registered.

The simplest plugin will have just once sensor backend although there is no reason that multiple sensor backends cannot be in a plugin.

An example follows.

class MyPluginClass(QObject, QSensorPluginInterface, QSensorBackendFactory):

    Q_OBJECT
    #Q_PLUGIN_METADATA(IID "com.qt-project.Qt.QSensorPluginInterface/1.0" FILE "plugin.json")
    Q_INTERFACES(QSensorPluginInterface)
# public
    def registerSensors():

        QSensorManager.registerBackend(QAccelerometer.sensorType, MyBackend.id, self)

    QSensorBackend createBackend(QSensor sensor) override

        if sensor.identifier() == MyBackend.id:
            return MyBackend(sensor)
        return 0