【问题标题】:Using Multiple Tkinter Treeview Styles in same program在同一程序中使用多个 Tkinter Treeview 样式
【发布时间】:2021-09-17 12:19:01
【问题描述】:

我似乎无法找到这个问题的答案。我在我的程序中使用了几个 Tkinter Treeviews。当我改变一个人的风格时,它会改变所有的人。我错过了什么?这是我写的代码,重复了四次(其他颜色不同)

style = ttk.Style()
#style.theme_use("default")
style.configure("Treeview",background="Black", foreground="White",fieldbackground="red")
style.map('Treeview', background=[('selected','#3c3737')],foreground=[('selected','white')])
my_tree = ttk.Treeview(my_canvas2,height=1000)

【问题讨论】:

    标签: python tkinter treeview


    【解决方案1】:

    您可以使用style.configure("<custom_name>.<widget_type>"... 创建自定义小部件样式。因此,如果您想创建自定义的“Treevew”样式,您可以使用style.configure("MyCustom.Treeview"...)

    然后您将创建一个ttk 小部件并将自定义小部件样式作为style 参数传递,例如my_treeview = ttk.Treeview(master, style="MyCustom.Treeview")。这是一个示例程序,它创建了两个不同的ttk.TreeViews,具有不同的样式:

    import tkinter
    from tkinter import ttk
    
    w = tkinter.Tk()
    
    style = ttk.Style()
    style.configure("Custom1.Treeview",background="Black", foreground="White",fieldbackground="red")
    style.map('Custom1.Treeview', background=[('selected','#3c3737')],foreground=[('selected','white')])
    
    style.configure("Custom2.Treeview",background="Greed", foreground="Purple",fieldbackground="pink")
    style.map('Custom2.Treeview', background=[('selected','#3c3737')],foreground=[('selected','white')])
    
    my_tree1 = ttk.Treeview(w, height=1000, style="Custom1.Treeview")
    my_tree1.pack(side="left")
    
    my_tree2 = ttk.Treeview(w, height=1000, style="Custom2.Treeview")
    my_tree2.pack(side="right")
    
    w.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2011-05-16
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多