QIconEngine 类

The QIconEngine class provides an abstract base class for QIcon renderers. More...

头文件 #include <QIconEngine>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui

公共类型

结构体ScaledPixmapArgument
枚举IconEngineHook { IsNullHook, ScaledPixmapHook }

公共函数

QIconEngine()
virtual~QIconEngine()
virtual QSizeactualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual voidaddFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual voidaddPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
virtual QList<QSize>availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
virtual QIconEngine *clone() const = 0
virtual QStringiconName()
virtual boolisNull()
virtual QStringkey() const
virtual voidpaint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0
virtual QPixmappixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual boolread(QDataStream &in)
virtual QPixmapscaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
virtual voidvirtual_hook(int id, void *data)
virtual boolwrite(QDataStream &out) const

详细信息

图标引擎提供 QIcon 的渲染函数。每个图标都有一个相应的图标引擎,负责以请求的大小、模式和状态绘制图标。

图标通过 paint() 函数绘制,可以使用 pixmap() 函数(默认实现只是简单地使用 paint() 来实现)获取图标作为位图。可以使用 addPixmap() 函数将新的位图添加到图标引擎中,该函数由 QIcon 用于添加特别的自定义位图。

paintpixmapaddPixmap 函数都是虚拟的,因此可以在 QIconEngine 的子类中重新实现。

另请参阅QIconEnginePlugin

成员类型文档

枚举 QIconEngine::IconEngineHook

这些枚举值用于 virtual_hook() 以允许在不破坏二进制兼容性的情况下对图标引擎进行额外的查询。

常量说明
QIconEngine::IsNullHook3允许查询该引擎是否表示一个空图标。函数 virtual_hook() 的 data 参数是指向一个 bool 指针的指针,如果图标为空,则可以将它设置为 true。此枚举值自 Qt 5.7 起被添加。
QIconEngine::ScaledPixmapHook4提供了一种按给定缩放比例(通常等于 设备像素比)获取位图的方法。函数 virtual_hook() 的 data 参数是指向 ScaledPixmapArgument 指针的指针,它包含输入和输出参数。此枚举值自 Qt 5.9 起被添加。

另请参阅 virtual_hook()。

成员函数文档

QIconEngine::QIconEngine()

构建图标引擎。

[虚拟、noexcept] QIconEngine::~QIconEngine()

销毁图标引擎。

[虚拟] QSize QIconEngine::actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)

返回引擎为请求的 sizemodestate 提供的图标实际大小。默认实现返回给定的 size

[虚拟] void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)

QIcon::addFile 调用(). 添加一个带有指定 fileNamesizemodestate 的专业化位图。基于位图的默认引擎存储任何提供的文件名,并且它在需要时加载位图,而不是使用缩放位图,如果位图的大小与请求的图标大小相匹配。实现可缩放矢量格式的自定义图标引擎可以自由忽略任何额外文件。

[虚拟] void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)

QIcon::addPixmap 调用(). 为给定的 modestate 添加一个专业化的 pixmap。基于位图的默认引擎将任何提供的位图存储起来,并且在需要时使用这些位图而不是缩放位图,如果位图的大小与请求的图标大小相匹配。实现可缩放矢量格式的自定义图标引擎可以自由忽略任何额外位图。

[虚拟] QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)

返回特定 modestate 的引擎中包含的所有图像的大小。

[纯虚函数] QIconEngine *QIconEngine::clone() const

重新实现此方法以返回此图标引擎的副本。

[虚函数] QString QIconEngine::iconName()

如果提供则返回用于创建引擎的名称。

[虚函数] bool QIconEngine::isNull()

如果此图标引擎代表一个空 QIcon,则返回 true。

注意: 这是一个辅助方法,实际工作由 virtual_hook() 方法完成,因此此方法依赖于图标引擎支持,可能不是所有图标引擎都适用。

[虚函数] QString QIconEngine::key() const

返回标识此图标引擎的键。

[纯虚函数] void QIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)

使用给定的 painter 将图标在所需的 modestate 以及矩形 rect 中绘制。

[虚函数] QPixmap QIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)

以所需的 sizemodestate 返回图标作为 pixmap。默认实现创建一个新的 pixmap 并调用 paint() 来填充它。

[虚函数] bool QIconEngine::read(QDataStream &in)

QDataStream in 读取图标引擎内容。如果已读取内容,则返回 true;否则返回 false

QIconEngine 的默认实现始终返回 false。

[虚拟] QPixmap QIconEngine::scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)

返回给定的大小、模式、状态和缩放值的图标位图。

缩放参数通常等于显示的设备像素比。

注意: 这是一个辅助方法,实际工作由 virtual_hook() 方法完成,因此此方法依赖于图标引擎支持,可能不是所有图标引擎都适用。

注意:某些引擎可能将缩放转换为整数。

另请参阅:_scaledPixmapArgument

[虚拟] void QIconEngine::virtual_hook(int id, void *data)

这是一个附加方法,允许在不添加新的虚方法的情况下扩展 QIconEngine(而且不会破坏二进制兼容性)。实际操作和数据的格式取决于id 参数,它实际上是 IconEngineHook 枚举的一个常量。

另请参阅:IconEngineHook

[虚拟] bool QIconEngine::write(QDataStream &out) const

将此引擎的内容写入到 QDataStream out。如果内容被写入,则返回 true;否则返回 false

QIconEngine 的默认实现始终返回 false。

© 2024 The Qt Company Ltd. 所包含的文档贡献的版权均归其各自的所有者所有。本提供的文档根据由自由软件基金会发布的 GNU自由文档许可版本1.3 的条款许可。Qt及其标志是芬兰的 The Qt Company Ltd. 在全球的商标。所有其他商标均为其各自所有者的财产。