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。

相关内容

热门资讯

五月天「5525回到那一天」主... 当“倔强”的旋律即将响彻贵阳奥体中心的夜空,当“温柔”的歌声将要唤醒这座城市的青春记忆,贵阳正以满满...
武汉“过早”的终极难题:今天吃... 在武汉,“过早”是一场盛大且不容错过的仪式,而每天清晨,武汉人都会面临一个甜蜜的终极难题:今天吃热干...
在家就能做!湖南话梅渍小番茄的... 湖南话梅渍小番茄是一道家常风味小食,在不少家庭的餐桌上都能见到。它酸甜开胃,制作简单,既适合日常佐餐...
家常美味宝藏:湖南红烧狮子头,... 湖南红烧狮子头是一道深受欢迎的家常菜肴,其特点是肉质鲜嫩、汤汁浓郁,口味咸香中带着微微的辣意,非常适...
从选鱼到成菜零失败:经典香辣鱼... 香辣鱼块是一道经典的家常菜,外酥里嫩,麻辣鲜香,无论是配米饭还是当作下酒菜都十分合适。以下是详细的制...
养生:吃火龙果酸奶冻的好处 一、营养协同效应:双重食材的黄金搭配 火龙果与酸奶的组合绝非偶然,而是基于营养学原理的精准搭配。火龙...
一口红糖麻酱烧饼,唤醒记忆里的... 清晨的胡同口,总有热气裹着甜香扑面而来。刚出炉的红糖麻酱烧饼,焦糖色的外皮裂开细纹,麻酱的醇厚与红糖...
答应我,来云南一定要这么吃一次... ▽以下是正文 在云南省德宏傣族景颇族自治州陇川县 “手抓饭”是景颇族餐饮文化的代表作 是刻在民族基...
麻辣风味食品调味的核心:咸味香... 01、咸味香精香料 咸味香精香料是肉味之主体,也是麻辣风味食品调味的核心。如果麻辣风味食品没有肉味...
医耀服贸|二十四节气养生指南,... 二十四节气是天地自然变化的节律标记,也是中医养生的重要依据。来自2025服贸会健康卫生专题展展商——...
2025环球旅讯峰会明日启幕,... 作为全球旅游业最具影响力的盛会,“环球旅讯峰会”已成功举办 17 届,始终以前瞻视角洞察行业趋势,搭...
艾铂丽宴会酒店,获评“全国五星... 热烈祝贺,艾铂丽宴会酒店顺利通过“全国五星级婚礼酒店”的现场评审和验收! 经过星级申报小组的精心...
创新,中国旅游兴旺的法宝(览胜... 旅拍摄影师与游客行走在浙江宁波慈城古县城景区内。 新华社记者 江 汉摄 湖北恩施大峡谷景区里,游客在...
AI智慧操场,科学赋能校园体育 AI智慧操场,科技赋能校园体育 随着暑假的结束,深圳第三高级中学迎来了一个令人振奋的消息:经过精心筹...
诗画浙江,食味人间:从西湖醋鱼... 浙江,这片被唐诗宋词浸润的土地,不仅孕育了“诗画江南”的绝美风光,更滋养出独具风雅的饮食文化。从西湖...
邯郸“旅发会”多维创新赋能文旅... 本文转自:人民网-河北频道人民网石家庄9月9日电 (记者杨文娟)日前,记者从第八届邯郸市旅游产业发展...
人均近万却难逃停业,好利来太子... 近日,餐饮行业传来一则令人瞩目的消息:曾被誉为“上海Fine dining标杆”的米其林一星餐厅EH...
东北“女士菜”,多少男士在偷偷... 作者:吃卜宝 编辑:曾宝气 本文经授权转载自新周刊 “东北菜为啥要分男女?”“女士菜是只有女士能吃...
原创 秋... 最近天凉了总想吃点鲜的。大鱼大肉有时候真咽不下,来盘香菇焖冬瓜最舒服。这东西别看是素的,做好了比肉都...
一种易长胖、巨升糖的粗粮,很多... 玉米口感软糯、鲜甜,是很多人爱吃的粗粮,不少人的食谱里,早餐、午饭、晚饭都有它。但其实,玉米是所有粗...