如何在CustomTkinter中实现开关关闭时调用函数?
在CustomTkinter中实现开关关闭时调用函数的方法
CustomTkinter的CTkSwitch组件没有单独的"关闭事件"绑定,核心逻辑是:开关状态切换(无论开→关还是关→开)时,command绑定的函数都会触发。你只需要在回调函数里判断开关当前的状态,就能分别处理开启和关闭的逻辑。
示例代码
import customtkinter as ctk def handle_switch(switch): # 获取开关当前状态:True为开启,False为关闭 state = switch.get() if state: # 这里写开关开启时的逻辑 print("开关开启,执行开启操作") else: # 这里写开关关闭时的逻辑 print("开关关闭,执行关闭操作") # 初始化窗口 app = ctk.CTk() app.geometry("300x150") # 创建开关,用lambda把开关对象传入回调函数 test_switch = ctk.CTkSwitch(app, text="功能开关", command=lambda: handle_switch(test_switch)) test_switch.pack(pady=50) app.mainloop()
关键说明
- 用
lambda传递开关对象给回调函数,这样才能在函数内通过switch.get()获取实时状态 - 无需额外绑定关闭事件,状态切换的所有场景都由同一个
command函数处理,通过布尔值判断分支即可
内容的提问来源于stack exchange,提问作者odde585
相关产品推荐
相关产品推荐

