Roson的Qt之旅 #134 QIconEngine类
admin
2024-01-20 18:52:56
0

目录

1.详细描述

2.成员类型说明

3.成员函数说明


1.详细描述

QIconEngine类为QIcon渲染器提供了一个抽象的基类。 一个图标引擎为一个QIcon提供渲染功能。每个图标都有一个相应的图标引擎,负责以要求的尺寸、模式和状态绘制图标。 图标是由paint()函数渲染的,另外还可以通过pixmap()函数获得一个像素图(默认实现只是使用paint()来实现)。addPixmap()函数可以用来向图标引擎添加新的像素图,并被QIcon用来添加专门的自定义像素图。 paint(), pixmap(), and addPixmap()函数都是虚拟的,因此可以在QIconEngine的子类中重新实现。 也请看QIconEnginePlugin。

2.成员类型说明

enum QIconEngine::IconEngineHook

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

ConstantValueDescription
QIconEngine::AvailableSizesHook1Allows to query the sizes of the contained pixmaps for pixmap-based engines. The data argument of the virtual_hook() function is a AvailableSizesArgument pointer that should be filled with icon sizes. Engines that work in terms of a scalable, vectorial format normally return an empty list.
QIconEngine::IconNameHook2Allows to query the name used to create the icon, for example when instantiating an icon using QIcon::fromTheme().
QIconEngine::IsNullHook3Allow to query if this engine represents a null icon. The data argument of the virtual_hook() is a pointer to a bool that can be set to true if the icon is null. This enum value was added in Qt 5.7.
QIconEngine::ScaledPixmapHook4Provides a way to get a pixmap that is scaled according to the given scale (typically equal to the device pixel ratio). The data argument of the virtual_hook() function is a ScaledPixmapArgument pointer that contains both the input and output arguments. This enum value was added in Qt 5.9.

这个枚举是在Qt 4.5中引入或修改的。 也请参见virtual_hook()。

3.成员函数说明

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

返回引擎为请求的尺寸、模式和状态提供的图标的实际尺寸。默认的实现是返回给定的尺寸。

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

由QIcon::addFile()调用。从具有给定的fileName、大小、模式和状态的文件中添加一个专门的像素图。默认的基于像素图的引擎会存储任何提供的文件名,如果像素图的大小与请求的图标大小相匹配,它会按需加载像素图,而不是使用缩放的像素图。实现可缩放矢量格式的自定义图标引擎可以自由地忽略任何额外的文件。

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

由QIcon::addPixmap()调用。为给定的模式和状态添加一个专门的像素图。默认的基于像素图的引擎会存储任何提供的像素图,如果像素图的大小与请求的图标大小相匹配,它会使用它们而不是按比例的像素图。实现可伸缩矢量格式的自定义图标引擎可以自由地忽略任何额外的像素图。

[virtual] QList QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) const

返回所有包含在引擎中的特定模式和状态的图像的尺寸。 注意:这是一个辅助方法,实际工作是由virtual_hook()方法完成的,因此这个方法取决于图标引擎的支持,可能无法在所有的图标引擎上工作。 这个函数是在Qt 4.5中引入的。

[pure virtual] QIconEngine *QIconEngine::clone() const

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

[virtual] QString QIconEngine::iconName() const

返回用于创建引擎的名称,如果有的话。 注意:这是一个辅助方法,实际工作由virtual_hook()方法完成,因此这个方法取决于图标引擎的支持,可能不适合所有的图标引擎。

bool QIconEngine::isNull() const

如果这个图标引擎代表一个空的QIcon,返回true。 注意:这是一个辅助方法,实际工作是由virtual_hook()方法完成的,因此这个方法取决于图标引擎的支持,可能不适合所有的图标引擎。

[virtual] QString QIconEngine::key() const

返回一个识别此图标引擎的键。

[pure virtual] void QIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)

使用给定的绘画器将具有所需模式和状态的图标绘制到矩形的rect中。

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

返回具有所需大小、模式和状态的像素图的图标。默认的实现是创建一个新的像素图并调用paint()来填充它。

[virtual] 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)

返回一个给定大小、模式、状态和比例的像素图。 scale参数通常等于显示器的设备像素比。 注意:这是一个辅助方法,实际工作是由virtual_hook()方法完成的,因此这个方法取决于图标引擎的支持,可能不会在所有的图标引擎上工作。 注意:有些引擎可能会把刻度投给一个整数。 这个函数是在Qt 5.9中引入的。 参见ScaledPixmapArgument。

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

额外的方法允许扩展QIconEngine而不添加新的虚拟方法(并且不破坏二进制兼容性)。实际的动作和数据的格式取决于id参数,实际上是IconEngineHook枚举中的一个常数。 这个函数是在Qt 4.5中引入的。 参见IconEngineHook。

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

把这个引擎的内容写到QDataStream out中。如果内容被写入,返回true;否则返回false。 QIconEngine的默认实现总是返回false。

相关内容

热门资讯

全球开园规模最大乐高乐园在上海... 作为全球开园规模最大的乐高乐园,上海乐高乐园5日正式开园。 业界人士认为,国际知名主题乐园相继加码布...
拜年的来历? 拜年的来历?那你是卖。... 那你是卖。 展开 传说远古时代有一种叫“年”的怪物,每逢腊月三十...
工作压力有利于成长的事例 工作压力有利于成长的事例 把李嘉诚的传记,推荐给您,我以前看过一多半,很有感触,希望可以帮助到您
苏武牧羊北海边的北海指的是哪里... 苏武牧羊北海边的北海指的是哪里?贝加尔湖,中国古代称为北海,位于俄罗斯西伯利亚南部简介贝加尔湖是亚欧...
购物狂电影的最后一幕那个弃婴 ... 购物狂电影的最后一幕那个弃婴 是怎么回事?是主角的小时候吧,讲她为什么是购物狂,因为她小时候被抛弃在...
方法决定成败 方法决定成败没错,方法决定成败,态度决定一切,心态决定效率。送你这几句名言,以资鼓励。
霞秋的意思?想表达晚年幸福? 霞秋的意思?想表达晚年幸福?霞秋的意思?想表达晚年幸福?... 霞秋的意思?想表达晚年幸福? 展...
关于“欣赏”的名言和事例 关于“欣赏”的名言和事例19世纪末,美国西部的密苏里有一个坏孩子,他偷偷地向邻居家的窗户扔石头,还把...
自己发的语音总是不敢去听,怎么... 自己发的语音总是不敢去听,怎么让自己勇敢去听呢?怎么说呢,其实你录下来的声音就是别人听到的,只是因为...
格物致知的真正意义是什么? 格物致知的真正意义是什么?提示:可以从文章内容中直接找到答案。? 参考答案:格物致知的真正...
醒悟中心卢卫斌老师谈强迫症的治... 醒悟中心卢卫斌老师谈强迫症的治疗为什么需要禅修练习  强迫症是一种复合型心理障碍,有其独特的障碍模型...
宣化那有好玩的地方 宣化那有好玩的地方有吗? 「莫等闲,白了少年头。空b切」
水深水浅东西涧 云去云来远近山... 水深水浅东西涧 云去云来远近山是什么意思  涧水或东或西时深时浅,山峦亦近云雾盘桓.  作品原文  ...
我的妹妹不可能那么可爱 讲的是... 我的妹妹不可能那么可爱 讲的是什么?就是有一个长的很可爱明明可以很受欢迎【也确实很受欢迎】的妹纸爱好...
童话诗有什么特点 童话诗有什么特点 童话诗(Fairy tale poem),故事诗的一种,现代诗的一种体裁。是以童话...
一块姜在挡车的是什么歌 一块姜在挡车的是什么歌一块姜在挡车的是什么歌感应:泳儿的歌我听的不多,但这首歌尤其的熟悉是一个人生活...
MP3出问题 MP3出问题我选其他歌,它都会跳回去原来那首歌,有时候还更厉害,显示这首歌的文件名字,唱另外一首歌出...
在金庸的设定里,一个武林高手可... 在金庸的设定里,一个武林高手可以打赢100个人已经是极限,但500个武林高手一定打不过1000名普第...
唐诗人张九龄"海上生明月天涯天... 唐诗人张九龄"海上生明月天涯天涯共此时"一诗全文?望月汪渗怀远 唐· 张九龄海上生明月,天涯共此时。...
暗里着迷歌曲深意? 暗里着迷歌曲深意?歌曲《暗里着迷》是刘德华在1993年发行的一首歌,他一直称这一首歌是自己半生中最重...