customtkinter与ttkbootstrap导入冲突致_TclError错误求助
解决customtkinter与ttkbootstrap导入冲突导致的
_tkinter.TclError问题 问题原因
ttkbootstrap在导入阶段会全局修改Tkinter的Tcl环境配置(比如DPI缩放规则),而customtkinter组件初始化时会使用浮点数格式的尺寸参数,被修改后的Tcl环境无法正确解析这类带小数点的数值,从而触发bad screen distance "175.0"错误。
可行解决方案
调整导入顺序:优先导入customtkinter,再导入ttkbootstrap,让customtkinter先完成核心配置初始化:
import customtkinter as ctk import ttkbootstrap # 放在ctk之后导入 root = ctk.CTk() btn = ctk.CTkButton(root, text="Test") btn.pack() root.mainloop()重置Tcl缩放配置:导入ttkbootstrap后,手动重置customtkinter的缩放参数,强制使用整数兼容的规则:
import customtkinter as ctk import ttkbootstrap # 重置组件和窗口缩放比例为1.0(可根据实际需求调整) ctk.set_widget_scaling(1.0) ctk.set_window_scaling(1.0) root = ctk.CTk() btn = ctk.CTkButton(root, text="Test") btn.pack() root.mainloop()或者直接在Tcl层面修改:
root = ctk.CTk() # 强制Tcl使用整数缩放规则 root.tk.call('tk', 'scaling', 1.0)降级库版本:如果上述方法无效,尝试回退到两个库的稳定兼容版本,例如:
pip install customtkinter==5.2.1 ttkbootstrap==1.10.1
注意事项
这个冲突并非特定组件独有,只要是customtkinter的组件初始化涉及浮点数尺寸参数,都会触发该错误,因此上述方案适用于所有相关场景。
内容的提问来源于stack exchange,提问作者vivats
相关产品推荐
相关产品推荐

