QIconEngine 类
The QIconEngine class provides an abstract base class for QIcon renderers. More...
头文件 | #include <QIconEngine> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 所有成员列表,包括继承成员
- QIconEngine 是 绘制类 的一部分。
公共类型
结构体 | ScaledPixmapArgument |
枚举 | IconEngineHook { IsNullHook, ScaledPixmapHook } |
公共函数
QIconEngine() | |
virtual | ~QIconEngine() |
virtual QSize | actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) |
virtual void | addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state) |
virtual void | addPixmap(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 QString | iconName() |
virtual bool | isNull() |
virtual QString | key() const |
virtual void | paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0 |
virtual QPixmap | pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) |
virtual bool | read(QDataStream &in) |
virtual QPixmap | scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) |
virtual void | virtual_hook(int id, void *data) |
virtual bool | write(QDataStream &out) const |
详细信息
图标引擎提供 QIcon 的渲染函数。每个图标都有一个相应的图标引擎,负责以请求的大小、模式和状态绘制图标。
图标通过 paint() 函数绘制,可以使用 pixmap() 函数(默认实现只是简单地使用 paint() 来实现)获取图标作为位图。可以使用 addPixmap() 函数将新的位图添加到图标引擎中,该函数由 QIcon 用于添加特别的自定义位图。
paint、pixmap 和 addPixmap 函数都是虚拟的,因此可以在 QIconEngine 的子类中重新实现。
另请参阅QIconEnginePlugin。
成员类型文档
枚举 QIconEngine::IconEngineHook
这些枚举值用于 virtual_hook() 以允许在不破坏二进制兼容性的情况下对图标引擎进行额外的查询。
常量 | 值 | 说明 |
---|---|---|
QIconEngine::IsNullHook | 3 | 允许查询该引擎是否表示一个空图标。函数 virtual_hook() 的 data 参数是指向一个 bool 指针的指针,如果图标为空,则可以将它设置为 true。此枚举值自 Qt 5.7 起被添加。 |
QIconEngine::ScaledPixmapHook | 4 | 提供了一种按给定缩放比例(通常等于 设备像素比)获取位图的方法。函数 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)
返回引擎为请求的 size、mode 和 state 提供的图标实际大小。默认实现返回给定的 size。
[虚拟]
void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
由 QIcon::addFile 调用(). 添加一个带有指定 fileName、size、mode 和 state 的专业化位图。基于位图的默认引擎存储任何提供的文件名,并且它在需要时加载位图,而不是使用缩放位图,如果位图的大小与请求的图标大小相匹配。实现可缩放矢量格式的自定义图标引擎可以自由忽略任何额外文件。
[虚拟]
void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
由 QIcon::addPixmap 调用(). 为给定的 mode 和 state 添加一个专业化的 pixmap。基于位图的默认引擎将任何提供的位图存储起来,并且在需要时使用这些位图而不是缩放位图,如果位图的大小与请求的图标大小相匹配。实现可缩放矢量格式的自定义图标引擎可以自由忽略任何额外位图。
[虚拟]
QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
返回特定 mode 和 state 的引擎中包含的所有图像的大小。
[纯虚函数]
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 将图标在所需的 mode 和 state 以及矩形 rect 中绘制。
[虚函数]
QPixmap QIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
以所需的 size、mode 和 state 返回图标作为 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. 在全球的商标。所有其他商标均为其各自所有者的财产。