gpt4 book ai didi

python - Tkinter 如何更改 TreeView 所选项目的颜色

转载 作者:行者123 更新时间:2023-12-03 16:38:15 29 4
gpt4 key购买 nike

如何在树 View 中更改选定的文本颜色,我似乎找不到太多关于该主题的信息。

这是我尝试过的,但颜色没有像我想要的那样变成红色,它保持蓝色。

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


class App(Frame):

def __init__(self, parent):
super().__init__()
self.container = Frame.__init__(self, parent)
style = Style()
self.tv = None
self.tree()
style.configure('Treeview', selectbackground='red')

def tree(self):
tv = self.tv = Treeview(self.container)
tv.grid(sticky='NSEW')

tv.insert('', '0', 'item1', text='Item 1')
tv.insert('', '1', 'item2', text='Item 2')
tv.insert('', '2', 'item3', text='Item 3')

tv.insert('item1', '0', 'python1', text='Python 1')
tv.insert('item1', '1', 'python2', text='Python 2')

tv.insert('python1', '0', 'sub1', text='Sub item 1')
tv.insert('python1', '1', 'sub2', text='Sub item 2')


def main():
root = Tk()

root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
App(root)

root.mainloop()


if __name__ == '__main__':
main()

最佳答案

选定的背景颜色未设置 selectbackground选项,但作为 background 的动态值选项。因此要设置此选项,您需要替换

style.configure('Treeview', selectbackground='red')

经过
style.map('Treeview', background=[('selected', 'red')])

这意味着当项目处于“选中”状态时,其背景为红色。例如,这也可用于设置禁用的背景颜色。

您可以在此处找到有关动态外观更改的更多信息: https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/ttk-map.html

您还可以使用 style.map('Treeview') 查询当前的动态值或 style.map('Treeview', 'background') (仅获取背景值列表)。

顺便说一句,正如stovfl所建议的,如果您还需要更改特定行的颜色,您可以查看 Unable to change background color of treeview in python .

关于python - Tkinter 如何更改 TreeView 所选项目的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159794/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com