1

有没有办法在创建/绘制后更改小部件的选项?我似乎找不到任何方法来做到这一点。我目前的目标是在标签的 temp0 文本变量 >= 50 时更改标签的 fg。

这段代码是一个更大程序的一部分,所以我不想把所有这些都放在这里,因为重要的部分是我不确定一旦我得到 b 如何更改该标签的 fg(即字体颜色) [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")
4

1 回答 1

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.

于 2013-10-29T16:58:20.100 回答