我没有太多运气来研究这项特殊任务。我想根据数字是负数还是正数来更新文本的前景色。如果数字为负,则以红色文本显示。如果为正,则显示为绿色。
我正在通过比较两个变量来检查它是否为负。如果总计大于或等于最小,则它是一个正数,反之亦然。这可能令人困惑,但是如果您的总计为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()函数实际上只是我已经拥有的那些按钮的一部分。 (假设我可以这样操作)