QIconEnginePlugin Class

The QIconEnginePlugin class provides an abstract base for custom QIconEngine plugins. More...

Header: #include <QIconEnginePlugin>
qmake: QT += gui
Inherits: QObject

Public Functions

QIconEnginePlugin(QObject *parent = nullptr)
virtual ~QIconEnginePlugin()
virtual QIconEngine *create(const QString &filename = QString()) = 0

Detailed Description

The icon engine plugin is a simple plugin interface that makes it easy to create custom icon engines that can be loaded dynamically into applications through QIcon. QIcon uses the file or resource name's suffix to determine what icon engine to use.

Writing a icon engine plugin is achieved by subclassing this base class, reimplementing the pure virtual function create(), and exporting the class with the Q_PLUGIN_METADATA() macro.

The json metadata should contain a list of icon engine keys that this plugin supports. The keys correspond to the suffix of the file or resource name used when the plugin was created. Keys are case insensitive.

{ "Keys": [ "myiconengine" ] }

See also How to Create Qt Plugins.

Member Function Documentation

QIconEnginePlugin::QIconEnginePlugin(QObject *parent = nullptr)

Constructs a icon engine plugin with the given parent. This is invoked automatically by the plugin loader.

[virtual] QIconEnginePlugin::~QIconEnginePlugin()

Destroys the icon engine plugin.

You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.

[pure virtual] QIconEngine *QIconEnginePlugin::create(const QString &filename = QString())

Creates and returns a QIconEngine object for the icon with the given filename.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.