Spec-Zone.ru › Qt 5.13

Класс QStylePlugin

Класс QStylePlugin предоставляет абстрактную базу для пользовательских плагинов QStyle. Подробнее...

Заголовок: #include <QStylePlugin>
qmake: QT += widgets
Наследует: QObject
  • Список всех членов, включая унаследованные

Открытые функции

QStylePlugin(QObject *parent = nullptr)
virtual ~QStylePlugin()
virtual 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 = 0);

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

Файл метаданных json mystyleplugin.json для плагина должен содержать информацию об именах стилей, поддерживаемых плагинами, следующим образом:

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

См. Как создать плагины Qt для получения подробной информации.

См. также QStyleFactory и QStyle.

Описание функций-членов

QStylePlugin::QStylePlugin(QObject *parent = nullptr)

Конструирует плагин стиля с заданным parent.

Обратите внимание, что этот конструктор вызывается автоматически сгенерированным кодом moc, который экспортирует плагин, поэтому вызывать его явно не нужно.

[virtual] QStylePlugin::~QStylePlugin()

Уничтожает плагин стиля.

Обратите внимание, что Qt автоматически уничтожает плагин, когда он больше не используется, поэтому вызывать деструктор явно не нужно.

[pure virtual] QStyle *QStylePlugin::create(const QString &key)

Создает и возвращает объект QStyle для заданного ключа стиля key. Если плагин не может создать стиль, он должен вернуть 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 0;
}

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qstyleplugin.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API