QStylePlugin 类

QStylePlugin 类提供了一个抽象基类,用于自定义 QStyle 插件。更多...

头文件 #include <QStylePlugin>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QObject

公共函数

QStylePlugin(QObject *parent = nullptr)
虚拟~QStylePlugin()
虚拟 QStyle *create(const QString &key) = 0

详细描述

QStylePlugin 是一个简单的插件接口,它使得创建自定义样式变得容易,这些样式可以使用 QStyleFactory 类动态地加载到应用程序中。

编写样式插件是通过继承此类、重新实现纯虚函数 create() 以及使用 Q_PLUGIN_METADATA() 宏来导出类来实现的。

class MyStylePlugin : public QStylePlugin
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "mystyleplugin.json")
public:
    MyStylePlugin(QObject *parent = nullptr);

    QStyle *create(const QString &key) override;
};

插件的 json 元数据文件 mystyleplugin.json 需要包含插件所支持的样式的名称信息,如下所示

{ "Keys": [ "Rocket", "Starbuster" ] }

有关详情请参阅 如何创建 Qt 插件

另请参阅 QStyleFactoryQStyle

成员函数文档

[显式构造函数] QStylePlugin::QStylePlugin(QObject *parent = nullptr)

使用指定的 parent 构造样式插件。

请注意,此构造函数由导出插件的 moc 生成代码自动调用,因此无需显式调用它。

[虚析构函数] QStylePlugin::~QStylePlugin()

销毁样式插件。

请注意,当插件不再被使用时,Qt 会自动销毁插件,因此无需显式调用析构函数。

[纯虚函数] QStyle *QStylePlugin::create(const QString &key)

为指定的样式 key 创建并返回一个 QStyle 对象。如果插件无法创建样式,则应返回 0。

样式键通常是需要样式的类名。注意键名不区分大小写。例如

QStyle *MyStylePlugin::create(const QString &key)
{
    QString lcKey = key.toLower();
    if (lcKey == "rocket") {
        return new RocketStyle;
    } else if (lcKey == "starbuster") {
        return new StarBusterStyle;
    }
    return nullptr;
}

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