【问题标题】:Python how to change color in a spesific cell in ttk treeviewPython如何在ttk treeview中更改特定单元格的颜色
【发布时间】:2022-01-09 00:15:20
【问题描述】:

我有一个简单的图形用户界面,它在屏幕上显示一个带有数字的表格,我想为一些特殊的数字着色。有人知道我该怎么做吗?

import tkinter as tk
from tkinter import *
from tkinter import ttk

def show_table():
    text = ""
    for letter in textDate.get():
        if letter != '/':
            text = text + letter
    print(text)
    number_array = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
    frn = Frame(root)
    frn.place(x=15, y=140)
    tv = ttk.Treeview(frn, columns=(1, 2, 3), show="headings", height="5")
    tv.pack()
    for i in number_array:
        tv.insert('', 'end', values=i)
def save_data():
    date = textDate.get()
    show_table()

root = tk.Tk()
canvas = tk.Canvas(root, height=700, width=700, bg="#A2A2A2")
root.title("test")
canvas.pack()
datelable = tk.Label(text="date", bg="#A2A2A2")
datelable.place(x=15, y=50)
textDate = tk.StringVar()
textEntry = tk.Entry(textvariable=textDate)
textEntry.place(x=15, y=70, width=100, height=15)
finishButton = tk.Button(root, text="send", width="10", height="1", bg="#FFFFFF", command=save_data)
finishButton.place(x=15, y=100)
frame = tk.Frame(root)
root.mainloop()

【问题讨论】:

    标签: python tkinter treeview ttk


    【解决方案1】:

    通过用网格结构替换你的树结构,我们可以为单个单元格着色,示例如下

    import tkinter as tk
    from tkinter import *
    from tkinter import ttk
    import random #for random color selection
    
    def show_table():
        text = ""
        for letter in textDate.get():
            if letter != '/':
                text = text + letter
        print(text)
        number_array = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
        for r in range(len(number_array)):
            for c in range(len(number_array[r])):
                colour = "#%06x" % random.randint(0, 0xFFFFFF)
                b = Entry(root, text = StringVar(value=number_array[c][r]), bg = colour)
                b.grid(row = r, column = c)
    
    def save_data():
        date = textDate.get()
        show_table()
    
    root = tk.Tk()
    canvas = tk.Canvas(root, height=700, width=700, bg="#A2A2A2")
    root.title("test")
    datelable = tk.Label(text="date", bg="#A2A2A2")
    datelable.place(x=15, y=50)
    textDate = tk.StringVar()
    textEntry = tk.Entry(textvariable=textDate)
    textEntry.place(x=15, y=70, width=100, height=15)
    finishButton = tk.Button(root, text="send", width="10", height="1", bg="#FFFFFF", command=save_data)
    finishButton.place(x=15, y=100)
    frame = tk.Frame(root)
    root.mainloop()
    

    输出

    【讨论】:

      【解决方案2】:

      Python 如何在 ttk 树视图中更改特定单元格的颜色

      您无法更改Treeview 小部件中特定单元格的颜色。格式只能应用于整行。颜色只能与标签一起应用,并且标签只能应用于整个项目,而不是项目的一部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-21
        • 1970-01-01
        • 2015-01-28
        • 2012-08-19
        • 2013-09-24
        • 1970-01-01
        相关资源
        最近更新 更多