如何更改Tkinter中的属性

时间:2013-10-29 16:56:30

标签: python tkinter

创建/绘制窗口小部件后,有没有办法改变窗口小部件的选项?我似乎无法找到任何办法。我目前的目标是在temp0文本变量为> = 50时改变标签的fg。

这段代码是一个更大的程序的一部分,所以我不想把所有这些都放在这里,因为关键部分是我不知道如何改变那个标签的fg(即字体颜色)得到b [0]值并发现它高于50. self.t0.config(fg="red")是否是正确的语法?

 class App:
    def __init__(self, master):

    #live updating TkInter variables    
        self.temp0 = DoubleVar()

        frame = Frame(master)
        self.t0 = Label(frame, fg="blue", textvariable=self.temp0,font=(20)).grid(row=2, column=0)
        frame.pack(padx=10, pady=10)

    def start(self):
        # calculates temperature
        self.temp0.set(b[0])

        # changes color of text to red if temp >= 50
        if b[0] >= 50:
            self.t0.config(fg="red")

1 个答案:

答案 0 :(得分:1)

是的,有效。您可以使用:

self.t0.config(fg="red")

或:

self.t0["fg"] = "red"

两种方法都做同样的事情,所以你可以选择你想要的。

此外,为了让一切正常,你需要制作这行代码:

self.t0 = Label(frame, fg="blue", textvariable=self.temp0,font=(20)).grid(row=2, column=0)

分为两行:

self.t0 = Label(frame, fg="blue", textvariable=self.temp0,font=(20))
self.t0.grid(row=2, column=0)

现在,self.t0会指向标签,而不是.grid的返回值,即None