QIfFeatureInterface 类

QIfFeatureInterface 定义了所有后端的基类。更多...

公共函数

virtual voidinitialize() = 0

信号

voiderrorChanged(QIfAbstractFeature::Error error, const QString &message = QString())
voidinitializationDone()

详细描述

要实现特定功能的后端,需要从此类派生。特定功能API与其对应的功能接口类之间存在一对一的映射。

功能接口类规定了后端需要实现哪些函数和信号以与特定功能一起工作。

此基类包含初始化逻辑和通用于所有接口的通用错误处理。

咖啡机功能接口可能如下所示

class CoffeMachineInterface : public QIfFeatureInterface
{
    void setTargetTemperature(int targetTemperature) = 0;
    ...

signals:
    void currentTemperatureChanged(int currentTemperature);
    void targetTemperatureChanged(int targetTemperature);
    ...
}

提供实际功能的后端实现需要实现所有纯虚函数,以及提供属性更新及其初始状态的逻辑。一旦功能知道需要使用哪个后端实现,它将通过调用initialize()函数,请求所有属性的初始状态。实现需要使用初始值发出更改信号,一旦完成,就发出initializationDone信号。

在咖啡机示例中,实现可能如下所示

class CoffeMachineImplementation : public CoffeMachineInterface
{
    void initialize()
    {
        emit currentTemperature(0);
        emit targetTemperature(0);
        emit initializationDone();
    }

    void setTargetTemperature(int targetTemperature)
    {
        if (m_targetTemperature == targetTemperature)
            return;

        // adjust the heating element to the new target temperature
        emit targetTemperatureChanged(targetTemperature)
    }
}

setTargetTemperature()的实现控制内部加热元件,一旦完成,就发出变更信号以通知功能新属性的状态。

另请参阅QIfAbstractFeature

成员函数文档

[信号] void QIfFeatureInterface::errorChanged(QIfAbstractFeature::Error error, const QString &message = QString())

当后端发生错误时,发出此信号。error是可选的。

[信号] void QIfFeatureInterface::initializationDone()

当在调用 initialize() 后将当前后端状态发送到功能后,会发出此信号。

另请参阅initialize

[纯虚函数] void QIfFeatureInterface::initialize()

初始化后端。此函数在连接到后端的功能之后被调用。预期此函数将通过发出带有当前状态的信号来通知后端的当前状态。

最后需要发送的信号是 initializationDone() 信号。

另请参阅initializationDone

© 2024 Qt 公司有限公司。此处包含的文档贡献是其各自的版权所有者。此处提供的文档是根据由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相应的标志是芬兰和/或世界其他地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。