Tkinter Treeview自定义样式后边框及条目分隔线消失问题咨询
解决Tkinter Treeview自定义样式后边框及分隔线消失的问题
问题根源是自定义样式时未继承默认Treeview的基础样式,导致默认的边框、行分隔线等属性被覆盖丢失。只需在自定义样式时指定继承父样式即可修复:
修改你的样式配置代码,在configure方法中添加parent="Treeview",让自定义的fordefect.Treeview继承默认Treeview的所有基础样式,再覆盖你需要自定义的属性:
style_defect = ttk.Style() # 关键:添加parent="Treeview"继承默认样式 style_defect.configure("fordefect.Treeview", parent="Treeview", background="#FFDEAD", foreground="black", fieldbackground="#FFDEAD", font=(None, 14), rowheight=30) style_defect.configure('fordefect.Treeview.Heading', background="white", font=('calibre', 14,"bold")) style_defect.map('fordefect.Treeview', background=[('selected', '#1E90FF')], foreground=[('selected', 'white')]) self.tree = ttk.Treeview(frametree, height=26, style="fordefect.Treeview")
另外注意:你之前代码里的sheight是无效属性,ttk Treeview没有这个配置项,直接删除即可。
修改后,自定义样式会保留默认Treeview的边框和行分隔线,同时应用你设置的背景、字体、行高这些自定义属性。
内容的提问来源于stack exchange,提问作者Prashant Priyadarshi
相关产品推荐
相关产品推荐

