使用变量实时更新标签前景色

时间:2019-10-17 00:18:35

标签: python tkinter

我没有太多运气来研究这项特殊任务。我想根据数字是负数还是正数来更新文本的前景色。如果数字为负,则以红色文本显示。如果为正,则显示为绿色。

我正在通过比较两个变量来检查它是否为负。如果总计大于或等于最小,则它是一个正数,反之亦然。这可能令人困惑,但是如果您的总计为30,但最低为35,则 myvar 为-5。

放置标签上方的if语句显然只会在第一次(启动程序时)起作用

if total.get() >= minimum.get():
    Label(root, textvariable=myvar, fg="green")
if total.get() < minimum.get(): # or an else statement here
    Label(root, textvariable=myvar, fg="red")

我也尝试过定义标签并运行一个函数来配置前景色,但是我认为我的语法不正确,或者我为此方法跳过了太多步骤。老实说,我只需要更新一件事就不需要复杂的东西。

test_label.configure(foreground="green") #or test_label.config(fg="green")?

现在我想知道是否可以使用变量(类似于更新标签中的textvariable),但是我没有成功。

my_fg = tk.StringVar()
my_fg.set("green") #otherwise the game won't open

Label(root, textvariable=myvar, fg=my_fg.get())

def change_fg():
    if total.get() >= minimum.get():
        my_fg.set("green")
    else:
        my_fg.set("red")

最后一个示例不返回任何错误,但也不起作用。有人知道正确的语法/方法吗?如果可能的话,尤其是一种直接/简单的方法。

以防万一这些信息有用或重要,我使用按钮来增加和减少总变量和最小变量,并且在此示例中,change_fg()函数实际上只是我已经拥有的那些按钮的一部分。 (假设我可以这样操作)

0 个答案:

没有答案