【问题标题】:Add styles to headings (text bold and backgroundcolor) of a Treeview Table - Tkinter Python向 Treeview 表的标题(文本粗体和背景色)添加样式 - Tkinter Python
【发布时间】:2021-01-02 07:18:40
【问题描述】:

我有一个小 Tkinter GUI,我有一张桌子。我想让标题中的文本加粗,并更改其背景颜色。我知道我们可以通过 ttk.Style() 和配置来做到这一点,但表格中没有任何变化。它仍然看起来很普通,还是我做错了。

请帮忙。

from tkinter import ttk
import tkinter as tk
from tkinter import *

window = tk.Tk()
window.state('zoomed')
treev = ttk.Treeview(window, selectmode ='browse')
treev.place(x= 600, y= 200, width= 350, height=350)

treev["columns"] = ('1', '2')
treev['show'] = 'headings'

style = ttk.Style()
style.configure('mytreeview.Headings', background='gray', font=('Arial Bold', 10))


ID = [1,2,3,4,5]
Names = ['Tom', 'Rob', 'Tim', 'Jim', 'Kim']

treev.column("1", width = 100, anchor ='c')
treev.column("2", width = 100, anchor ='c')

treev.heading("1", text ="ID")
treev.heading("2", text ="Names")


for x, y in zip(ID, Names):
    treev.insert("", 'end', values =(x, y))

window.mainloop()

【问题讨论】:

  • treev = ttk.Treeview(window, selectmode ='browse',style='mytreeview') 应该可以解决问题。
  • 哦等等让我试试。
  • 我收到一个错误提示:tkinter.TclError: Layout mytreeview not found

标签: python python-3.x tkinter treeview


【解决方案1】:

要配置样式,您需要一个这样的布局:

style.layout('my.Treeview',
             [('Treeview.field', {'sticky': 'nswe', 'border': '1', 'children': [
                 ('Treeview.padding', {'sticky': 'nswe', 'children': [
                     ('Treeview.treearea', {'sticky': 'nswe'})
                     ]})
                 ]})
              ])    

这段代码创建了一个名为my.Treeview 的新布局并复制了Treeview 的数据。 然后,在使用该名称创建布局后,您可以使用以下命令对其进行配置:

style.configure('my.Treeview.Heading', background='gray', font=('Arial Bold', 10))

别忘了在你喜欢的小部件上使用该样式:

treev = ttk.Treeview(window, selectmode ='browse',style='my.Treeview')

【讨论】:

  • 谢谢伙计..这真的很有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
相关资源
最近更新 更多