タグとtag_configureを使用して、tkinter treeviewオブジェクトの行に色を設定しようとしています。
かなり古く、Python3では機能しないように見える行の色付けについて、以前に議論がありました。
簡単な例を追加しました。私にとって、挿入コマンドの前または後のどちらでtag_configureを実行しても、すべての行は白のままです。
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
w = tk.Label(root, text="Hello, world!")
w.pack()
lb= ttk.Treeview(root, columns=['number', 'text'], show="headings", height =20)
lb.tag_configure('gr', background='green')
lb.column("number", anchor="center", width=10)
lb.insert('',tk.END, values = ["1","testtext1"], tags=('gr',))
lb.insert('',tk.END, values = ["2","testtext2"])
lb.pack()
root.mainloop()
何が変更されたか、何が欠けていますか?
編集:これは回避策を備えた新しい既知のバグであるようですが、私はこれを機能させていません: https:// core .tcl-lang.org/tk/tktview?name = 509cafafae
EDIT2:現在、tkバージョン8.6.10(Build hfa6e2cd_0、Channel conda-forge)とpython 3.7を使用しています。 .3。このバージョンのpythonとtkでこのエラーを再現できますか?
そのチャック666の答えはトリックをしました: https://stackoverflow.com/a/60949800/43529
このコードは機能します
import tkinter as tk
import tkinter.ttk as ttk
def fixed_map(option):
# Returns the style map for 'option' with any styles starting with
# ("!disabled", "!selected", ...) filtered out
# style.map() returns an empty list for missing options, so this should
# be future-safe
return [Elm for Elm in style.map("Treeview", query_opt=option)
if Elm[:2] != ("!disabled", "!selected")]
root = tk.Tk()
style = ttk.Style()
style.map("Treeview",
foreground=fixed_map("foreground"),
background=fixed_map("background"))
w = tk.Label(root, text="Hello, world!")
w.pack()
lb= ttk.Treeview(root, columns=['number', 'text'], show="headings", height =20)
lb.tag_configure('gr', background='green')
lb.column("number", anchor="center", width=10)
lb.insert('',tk.END, values = ["1","testtext1"], tags=('gr',))
lb.insert('',tk.END, values = ["2","testtext2"])
lb.pack()
root.mainloop()
彼が現れればボーナスを獲得したと思うので、Chuck666が彼の答えをここにコピーしてくれることを願っています。