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

同一程序中使用多个Tkinter Treeview,修改单个样式所有组件都变更怎么办

问题原因

你当前直接对"Treeview"这个全局默认样式做配置,所有未单独指定样式的Treeview组件都会默认继承这套配置,这就是多个组件样式同步变更的核心原因。

解决方法

ttk控件的自定义样式需要遵循[自定义标识].[控件类名]的命名规则,不同样式的Treeview单独命名即可实现隔离,操作步骤如下:

  • 给每个不同样式的Treeview定义专属的样式名,比如红色背景款命名为Red.Treeview、黑色背景款命名为Black.Treeview,不要直接修改默认的Treeview样式
  • 实例化Treeview时,通过style参数绑定对应的自定义样式名
代码示例

修改后的单组Treeview代码如下:

style = ttk.Style()
# 针对专属样式名做配置,不会影响全局默认样式
style.configure("Red.Treeview",background="Black", foreground="White",fieldbackground="red")
style.map('Red.Treeview', background=[('selected','#3c3737')],foreground=[('selected','white')])
# 实例化时指定对应样式
my_tree = ttk.Treeview(my_canvas2,height=1000, style="Red.Treeview")

其余三个Treeview按照同样逻辑修改自定义样式名和对应的style参数即可,不同样式之间不会互相干扰。


内容的提问来源于stack exchange,提问作者Man_Like_Dave

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:24:03