跳转至

运行演示(组件画廊)

tkfluent 自带一个把所有组件摆在同一个窗口里的画廊,用来快速看效果、 对比渲染引擎、或者验证环境是否装好。

画廊(浅色)

浅色主题下的画廊

画廊(深色)

深色主题下的画廊(-m dark)——同一套组件,只是配色字典不同

启动

python -m tkflu

安装后也可以直接用命令:

tkfluent-demo

命令行参数

python -m tkflu [-h] [-r ENGINE] [--list-engines] [-m {light,dark}]
                [--primary {blue,red,orange,yellow,green,purple}]
                [--geometry WxH] [--animation-steps N]
                [--animation-step-time MS] [--no-animation]
                [--cache-budget PIXELS] [--custom-titlebar WAY]
                [--check] [--stats]
参数 说明
-r, --renderer 渲染引擎:名字、编号(0-4)或 auto;不指定则沿用库默认
--list-engines 列出所有引擎及其可用性后退出
-m, --mode 启动主题:light(默认)或 dark
--primary 主色调预设,会影响强调色按钮与开关
--geometry 窗口尺寸,例如 720x640
--animation-steps 过渡动画帧数(默认 5,0 关闭)
--animation-step-time 每帧间隔毫秒数(默认 20)
--no-animation 等价于把上面两个都设为 0
--cache-budget 图片缓存的像素预算
--custom-titlebar 启用自定义标题栏(实验特性,仅 Windows)
--check 无界面自检,成功返回 0
--stats 退出时打印缓存命中统计

常用组合

# 看看有哪些引擎可用
python -m tkflu --list-engines

# 用最快的可用引擎(进程内栅格化)
python -m tkflu -r auto

# 指定引擎、深色主题、紫色主色调
python -m tkflu -r skia --mode dark --primary purple

# 关掉动画(低配机器或录屏时更稳)
python -m tkflu --no-animation

# 换主色调看看强调色组件的变化
python -m tkflu --primary orange

无界面自检 --check

--check 会真实地建出画廊里的每一个组件,然后对每个组件依次调用 重绘、浅色/深色主题、鼠标进入/离开、按下/抬起、尺寸变化等钩子, 最后打印缓存统计并退出。

python -m tkflu --check              # 用默认引擎
python -m tkflu --check -r skia      # 指定引擎
echo $?                              # 0 表示一切正常

它适合放进 CI:能在不需要显示器的前提下抓出"构造函数签名不匹配、 某个引擎下绘制报错"这类问题。逐引擎跑一遍就能覆盖所有后端:

for e in tksvg wand skia pillow cairo; do
    python -m tkflu --check -r "$e" || echo "引擎 $e 失败"
done

画廊里都有什么

窗口分成两块:

  • 左栏是"内容展示型"组件:标签(带提示)、徽标(标准/强调)、 输入框、多行文本框、列表、图片;
  • 右栏是"交互型"组件:四种按钮、开关、滑块、滚动条;
  • 顶部是菜单栏(含二级、三级级联);
  • 底部是状态栏,显示当前渲染引擎与图片缓存命中率,并提供 "切换主题""批量切换可用状态""刷新状态"三个按钮。

点任何组件都会在控制台打印一行事件日志,窗口底部也会显示最近一条, 用来确认事件是否按预期触发。

作为模块调用

main() 可以直接导入,参数与命令行一致:

from tkflu.__main__ import main

raise SystemExit(main(["--renderer", "pillow", "--check"]))

其他示例脚本

包内还带了几个更聚焦的示例,直接运行即可:

python -m tkflu.demos.demo1        # 基础组件
python -m tkflu.demos.grad         # 渐变效果
python -m tkflu.demos.grad3        # 带过渡动画的渐变
python -m tkflu.demos.designer     # 设计器风格
python -m tkflu.demos.scroll       # 滚动
python -m tkflu.demos.tooltip      # 提示气泡