警告

本节包含自动从C++翻译到Python的代码片段,可能包含错误。

创建传感器插件#

传感器插件是如何加载的#

由于传感器后端是在需要时创建的,所以传感器插件被加载并要求注册它所管理的传感器后端。插件应实现registerSensors()和调用registerBackend()以注册可用的后端。通常,插件还可以继承自QSensorBackendFactory并实现createBackend()以实例化它已注册的后端。

最简单的插件将只有一个传感器后端,尽管没有理由说插件不能包含多个传感器后端。

以下是一个示例。

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