我已经尝试构建一个树视图来将我的数据存储在 tkinter 中,但不幸的是,使用 ttk.Style 更改样式完全消除了突出显示行的能力以及悬停时突出显示列的功能。
有没有什么办法解决这一问题?
例子:
import tkinter as tk
from tkinter import ttk
inp = [{'Currency': 'EUR', 'Volume': '100', 'Country': 'SE'},
{'Currency': 'GBP', 'Volume': '200', 'Country': 'SE'},
{'Currency': 'CAD', 'Volume': '300', 'Country': 'SE'},
{'Currency': 'EUR', 'Volume': '400', 'Country': 'SE'},
{'Currency': 'EUR', 'Volume': '100', 'Country': 'DK'},
{'Currency': 'GBP', 'Volume': '200', 'Country': 'DK'},
{'Currency': 'CAD', 'Volume': '300', 'Country': 'DK'},
{'Currency': 'EUR', 'Volume': '400', 'Country': 'DK'},
]
class Application(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("Volume")
self.tree = ttk.Treeview(self, show='headings')
columns = list(inp[0].keys())
self.tree["columns"] = columns
self.tree.pack(expand=tk.TRUE, fill=tk.BOTH)
for i in columns:
self.tree.column(i, anchor=tk.W)
self.tree.heading(i, text=i, anchor=tk.W)
for row in inp:
self.tree.insert("", "end", values=list(row.values()))
root = Application()
style = ttk.Style()
style.theme_create('my_style', parent='clam')
style.theme_use('my_style')
root.mainloop()