- class QPixmapCache#
QPixmapCache
类提供了一个应用程序范围的位图缓存。 更多…概述#
方法#
def
find()
静态函数#
def
cacheLimit()
def
clear()
def
find()
def
insert()
def
remove()
def
replace()
def
setCacheLimit()
备注
此文档可能包含自动从 C++ 转译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有误,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式来告诉我们。
详细描述#
该类是一个用于优化使用
QPixmap
绘图的工具。您可以使用它来存储昂贵的生成像素图而不会超过cacheLimit()
的临时像素图,更多存储空间。使用insert()
插入像素图,find()
查找它们,以及clear()
清空缓存。QPixmapCache
不包含成员数据,只包含访问全局像素图缓存的静态函数。它为缓存像素图创建了一个内部 QCache 对象。缓存将一个像素图与用户提供的字符串键或与缓存生成的
Key
关联起来。使用Key
作为键比使用字符串更快。字符串 API 对于复杂键非常方便,但Key
API 将非常高效且方便地进行一对一对象到像素图的映射 - 在这种情况下,您可以将键作为对象的成员存储。如果在缓年中使用相同键插入两个像素图,则最后插入的像素图将替换第一个像素图。这遵循 QHash 和 QCache 类的行为。
当缓存中所有像素图的总大小超过
cacheLimit()
时,缓存将满。初始缓存限制为 10240 KB(10 MB);您可以通过调用setCacheLimit()
并传递所需值来更改此限制。一个像素图大约需要 (width * height * depth)/8 字节的内存。Qt Quarterly 文章 使用 QPixmapCache 优化 解释了如何使用
QPixmapCache
通过缓存绘画结果来加速应用程序。- 静态cacheLimit()#
- 返回类型:
int
返回缓存限制(以千字节为单位)。
默认缓存限制为 10240 KB。
另请参阅
- 静态clear()#
从缓存中删除所有像素图。
- find(arg__1)#
- 参数:
arg__1 –
Key
- 静态 find(key, pixmap)
- 参数:
key –
Key
pixmap –
QPixmap
- 返回类型:
bool
在缓存中查找与给定
key
关联的缓存的位图。如果找到位图,函数将pixmap
设置为该位图并返回true
;否则,不修改pixmap
并返回false
。如果找不到位图,这意味着key
已不再有效,因此它将被释放以供下次插入。- find(arg__1)
- 参数:
arg__1 – str
- 静态 find(key, pixmap)
- 参数:
key – str
pixmap –
QPixmap
- 返回类型:
bool
警告
本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。
在缓存中查找与给定
key
关联的缓存的位图。如果找到位图,函数将pixmap
设置为该位图并返回true
;否则,不修改pixmap
并返回false
。示例
pm = QPixmap() if not QPixmapCache.find("my_big_image", pm): pm.load("bigimage.png") QPixmapCache.insert("my_big_image", pm) painter.drawPixmap(0, 0, pm)
将给定
pixmap
的副本插入缓存,并返回一个键值,可用于检索它。当插入位图且缓存即将超出其限制时,它将删除位图,直到有足够的空间插入位图。
当需要更多空间时,最早创建的位图(在缓存中访问时间最久)将被删除。
另请参阅
- 静态 insert(key, pixmap)
- 参数:
key – str
pixmap –
QPixmap
- 返回类型:
bool
将与
key
关联的位图pixmap
的副本插入缓存。Qt 库插入的所有位图都有一个以 “$qt” 开头的键,因此您自己的位图键不应以 “$qt” 开头。
当插入位图且缓存即将超出其限制时,它将删除位图,直到有足够的空间插入位图。
当需要更多空间时,最早创建的位图(在缓存中访问时间最久)将被删除。
此函数在对象被插入缓存时返回
true
;否则返回false
。另请参阅
- 静态的remove(key)#
- 参数:
key –
Key
从缓存中删除与
key
关联的位图并释放该键以供将来插入。- 静态的remove(key)
- 参数:
key – str
从缓存中删除与
key
关联的位图。请使用
remove(key); key = insert(pixmap);
代替。用指定的
key
替换与该键关联的位图为pixmap
。如果位图已正确插入缓存,则返回true
;否则返回false
。传入的
key
已更新为引用pixmap
。如果有其他key
的副本,它们仍然引用旧的位图,然而,此函数会从缓存中删除该旧位图。另请参阅
- 静态的setCacheLimit(arg__1)#
- 参数:
arg__1 – int
将缓存限制设置为
n
千字节。默认设置为 10240 KB。
另请参阅