tkflu.designs.renderer · renderer 渲染引擎
渲染引擎选择(tkfluent → :mod:tkdeft.engines 的适配层)。
历史上这里用环境变量存一个整数:0 = tksvg、1 = wand。现在真正的
引擎实现在 :mod:tkdeft.engines,本模块只负责:
- 保持
set_renderer(int)/get_renderer()的行为不变(向后兼容); - 允许直接传引擎名:
set_renderer("skia"); - 在进程内把选择同步给 tkdeft 引擎注册表。
编号与引擎名的对应关系
=========== ==================================================
get_renderer() 引擎
=========== ==================================================
0 tksvg(默认,保持既有行为)
1 wand
2 skia(进程内栅格,推荐)
3 pillow(进程内栅格,无额外依赖)
4 cairo(进程内栅格)
=========== ==================================================
这张表就是 :data:tkdeft.engines.RENDERER_INDEX,tkfluent 不再自己维护一份。
用法
::
from tkflu import set_renderer, get_renderer_name, list_renderers
set_renderer("skia") # 或 set_renderer(2)
get_renderer() # -> 2
get_renderer_name() # -> "skia"
list_renderers() # -> [(0, 'tksvg', True), (1, 'wand', True), ...]
组件内部要"按引擎分支"时,只需要判断 get_renderer() == 1(Wand 的历史特例),
其余情况(含新增的栅格引擎)都走默认几何。
FluRenderer
Bases: object
面向对象风格的渲染器开关(保留旧 API)。
::
renderer = FluRenderer()
renderer.renderer("skia") # 设置
renderer.renderer() # 读取,-> 2
源代码位于: tkflu\designs\renderer.py
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | |
renderer(way=None)
读写当前渲染器。
:param way: None 表示只读;否则等价于 :func:set_renderer
:returns: 读取时返回编号,设置时返回 None
源代码位于: tkflu\designs\renderer.py
256 257 258 259 260 261 262 263 264 265 | |
get_renderer()
当前渲染器编号(保持历史 API)。
:returns: 0–4;组件里判"是不是 Wand"用 get_renderer() == 1
源代码位于: tkflu\designs\renderer.py
207 208 209 210 211 212 | |
get_renderer_name()
当前引擎名,比编号更直观。
源代码位于: tkflu\designs\renderer.py
215 216 217 | |
list_renderers()
列出 (编号, 引擎名, 是否可用)。
::
>>> list_renderers()
[(0, 'tksvg', True), (1, 'wand', True), (2, 'skia', True), ...]
源代码位于: tkflu\designs\renderer.py
220 221 222 223 224 225 226 227 228 229 230 231 232 | |
renderer_description(name)
取某个引擎的一句话说明(用于 --list-engines 之类的输出)。
:param name: 引擎名;未知名字时返回空字符串
源代码位于: tkflu\designs\renderer.py
235 236 237 238 239 240 241 242 243 | |
set_renderer(way)
切换渲染引擎。
:param way: 整数编号(0–4)或引擎名("skia" / "pillow" /
"cairo" / "tksvg" / "wand")
引擎不可用时抛 ValueError,避免"以为开了 skia 其实还在走慢路径"。
选择会同步给 tkdeft 的引擎注册表,并记在环境变量里以便子进程继承。
源代码位于: tkflu\designs\renderer.py
194 195 196 197 198 199 200 201 202 203 204 | |