自定义应用设置

你可以在导入 Charmy 之前或运行时设置配置,自定义应用行为。

1. 环境变量设置(导入前)

在导入 charmy 之前设置环境变量,影响全局行为:

from os import environ

environ["CHARMY_BACKEND"] = "genesis"   # 指定后端(目前唯一选项)

备注

如果不设置,Configs.default_backend 默认为 "auto", 而 "auto"loader.py 中被解析为 "genesis"

2. 调试标志(运行时)

Charmy 提供了一组调试标志,位于 cm.const.DEBUG_FLAGS

import charmy as cm

# 绘制所有控件的边界框(红色半透明矩形)
# 用于调试控件布局和碰撞检测
cm.const.DEBUG_FLAGS.DRAW_OBJECTS_BOUNDARY = True

# 每帧等待时间(用于观察绘制过程或降低 CPU 占用)
#   True     → 等待 0.5 秒
#   False    → 不等待(默认)
#   浮点数   → 自定义等待秒数,如 0.1 表示每秒约 10 帧
cm.const.DEBUG_FLAGS.WAIT_AFTER_EACH_FRAME = True
cm.const.DEBUG_FLAGS.WAIT_AFTER_EACH_FRAME = 0.1

# 标记被重绘的区域
# 每次重绘的区域会以紫色半透明矩形高亮显示
cm.const.DEBUG_FLAGS.MARK_REDRAWS = True

3. 主循环帧率控制

cm.mainloop(interval) 的参数 interval 控制每帧之间的等待时间:

cm.mainloop(0.016)    # 约 60 FPS(16ms)
cm.mainloop(0.033)    # 约 30 FPS(33ms)
cm.mainloop(0)        # 不等待,尽可能快地运行(高 CPU 占用)

备注

如果设置了 DEBUG_FLAGS.WAIT_AFTER_EACH_FRAME, 它会覆盖 mainloop()interval 参数。

4. 自定义后端行为

如果未来你开发了自己的后端,可以通过 CharmyManager 手动指定:

from charmy.cmm import CharmyManager
from my_backend import MyBackend

manager = CharmyManager(MyBackend())
window = cm.Window(parent=manager)