Как добавить вертикальные линии между столбцами заголовков в Tkinter Treeview? - PullRequest
0 голосов
/ 18 апреля 2020

Я создаю Python на основе Tkinter GUI. Он имеет виджет Treeview, и Мне нужно добавить вертикальные линии между столбцами заголовков (пример из другого приложения, не основанного на Tkinter, приведен ниже).

Can I do something like this?

Я был на Стиль заголовка 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...