首页 > 解决方案 > 如何在 Tkinter Treeview 的标题列之间添加垂直线?

问题描述

我正在创建一个基于 Python Tkinter 的 GUI。它有一个 Treeview 小部件,我需要在标题列之间添加垂直线(下面包含另一个示例,而不是基于 Tkinter 的应用程序)。

我可以做这样的事情吗?

我一直在Tkinter Treeview 标题样式那里也提出了这个确切的问题(在评论中),但即使在两年内也没有人回答。有没有办法在 Tkinter 中做这样的事情?

这是我尝试过的:

from tkinter import *
from tkinter.ttk import Treeview, Style


root = Tk()
style = Style()
style.element_create("Custom.Treeheading.border", "from", "default")
style.layout("Custom.Treeview.Heading", [
    ("Custom.Treeheading.cell", {"sticky": "nswe"}),
    ("Custom.Treeheading.border", {"sticky":"nswe", "children": [
        ("Custom.Treeheading.padding", {"sticky":"nswe", "children": [
            ("Custom.Treeheading.image", {"side":"right", "sticky":""}),
            ("Custom.Treeheading.text", {"sticky":"we"})
        ]})
    ]}),
])
style.configure("Custom.Treeview.Heading",
    background="red", foreground="white", relief="flat")
style.map("Custom.Treeview.Heading",
    relief=[("active", "groove"),("pressed", "sunken")])

tree = Treeview(root, style="Custom.Treeview", show="headings", columns=("word", "meaning"))
tree.heading("word", text="Word")
tree.heading("meaning", text="Meaning")
tree.insert("", END, values=("Food", "what we eat"))
tree.insert("", END, values=("Drinks", "what we drink"))
...
tree.pack()
root.mainloop()

标签: pythontkintertreeview

解决方案


推荐阅读