添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

python treeview grid lines

在Python的 tkinter 库中, ttk.Treeview 提供了一个用于显示树形数据的小部件,可以使用 grid 布局来安排部件的位置和大小。 ttk.Treeview 默认不显示网格线,但您可以使用以下代码来启用网格线:

tree = ttk.Treeview(root, show="tree")
tree["columns"] = ("one", "two", "three")
tree.column("#0", width=120, minwidth=25)
tree.column("one", width=150, minwidth=50)
tree.column("two", width=400, minwidth=200)
tree.column("three", width=80, minwidth=50)
tree.heading("#0", text="Name", anchor=W)
tree.heading("one", text="Column 1", anchor=W)
tree.heading("two", text="Column 2", anchor=W)
tree.heading("three", text="Column 3", anchor=W)
tree.grid(row=0, column=0, sticky="nsew")
tree.configure(style="mystyle.Treeview")

以上是创建一个ttk.Treeview的基本代码,tree.configure(style="mystyle.Treeview")"mystyle.Treeview"是你自己创建的样式名,其中设置Treeviewstyle"mystyle.Treeview"。要启用网格线,您需要创建一个新的样式来更改树形部件的外观。以下是一种简单的方式来创建一个新样式并启用网格线:

style = ttk.Style()
style.configure("mystyle.Treeview", highlightthickness=0, bd=0, font=('Calibri', 11))
style.configure("mystyle.Treeview", rowheight=24, bordercolor="#fff", background="#DADADA")
style.configure("mystyle.Treeview.Heading", font=('Calibri', 13, 'bold'))
style.layout("mystyle.Treeview", [('mystyle.Treeview.treearea', {'sticky': 'nswe'})])
style.layout("mystyle.Treeview.Item", [('Treeitem.padding', {'sticky': 'nswe', 'children': [('Treeitem.indicator', {'side': 'left', 'sticky': ''}), ('Treeitem.image', {'side': 'left', 'sticky': ''}), ('Treeitem.text', {'side': 'left', 'sticky': ''})]})])

上面的代码中,通过调整highlightthicknessbd的值,将突出显示和边框设置为0,这将消除原始部件中的网格线。rowheight属性设置树形小部件的行高,bordercolor属性设置小部件的边框颜色,background属性设置小部件的背景颜色。"mystyle.Treeview.Heading"设置了树形表头的样式,最后的layout命令定义了树形小部件的布局。

最后,通过在ttk.Treeview的配置中使用自定义样式名称,即tree.configure(style="mystyle.Treeview"),您可以将新样式应用于树形小部件。

注意,上述代码只是一个示例,您可以根据自己的需求进行修改。

  •