Мне не очень повезло, исследуя эту конкретную задачу. Я хотел бы обновить цвет текста на переднем плане в зависимости от того, является ли число отрицательным или положительным. Если число отрицательное, оно отображается красным текстом. Если оно положительное, оно отображается зеленым цветом.
Я проверяю, отрицательно оно или нет, сравнивая две переменные. Если total больше или равно минимум , то это положительное число, и наоборот. Это, вероятно, сбивает с толку, но если у вас всего 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 () в этом примере будетна самом деле просто быть частью функций, которые у меня уже есть для этих кнопок. (при условии, что я могу сделать это так)