Класс QStylePlugin
Класс QStylePlugin предоставляет абстрактную базу для пользовательских плагинов QStyle. Подробнее...
| Заголовок: | #include <QStylePlugin> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| 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 = nullptr);
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-6.0/qstyleplugin.html