python - 使用变量实时更新标签前景色
问题描述
我在研究这个特定任务时运气不佳。我想根据数字是负数还是正数来更新文本的前景色。如果数字为负数,则以红色文本显示。如果是阳性,则显示为绿色。
我通过比较两个变量来检查它是否为负数。如果总大于或等于最小值,则它是一个正数,反之亦然。这可能令人困惑,但如果您总共有 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")?
现在我想知道是否可以使用变量(类似于在标签中更新文本变量),但我没有成功。
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() 函数实际上只是我已经为这些按钮拥有的函数的一部分。(假设我可以这样做)
解决方案
推荐阅读
- prolog - 提示了解解决皇后区的精彩程序
- windbg - 使用 Windbg 调试器命令转储字符串数组
- matlab - 为什么 vgg19 的训练速度比 alexnet 慢得多,分别是 50 小时和 4 小时?
- mysql - 显示特定城市本月尚未创建项目的用户(count=0)
- javascript - 使用 jquery 获取焦点元素的名称属性(具有方括号)
- ruby-on-rails - Rails:软删除
- android - 如何在 Android 计费中检查订阅状态?
- java - 将 CSV 转换为 JSON 以在 Scala Spark 中配对 RDD
- refresh - 更快地更新计时码表
- jquery - 为什么 Ajax 发送空数据