You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:04:57