我的guizero代码的背景颜色没有更新

问题描述

我的guizero代码的背景颜色没有更新。它以灰色开头,并保持灰色(颜色选项为蓝色,橙色,红色),但print语句给出正确的值。临时值在GUI中正常更新。 bg_color分配的哪一部分不正确?

from guizero import *
import random   

def read_sensor():
    return random.randrange(3200,5310,10) / 100

def read_cpu_temp():
    tFile = open('/sys/class/thermal/thermal_zone0/temp')
    temp = float(tFile.read())
    return temp/1000

def update_label():
    text.value = read_cpu_temp()
    text.value = bg_color()
    # recursive call
    text.after(1000,update_label)  
def bg_color():
    print (read_cpu_temp())
    if read_cpu_temp() < 45.000:
        bg_color = "#00BFFF"
        print ("blue")
    elif 45.000 < read_cpu_temp() < 60.000:
        bg_color = "#FF8C00"
        print ("orange")
    else:
        bg_color = "#FF0000"
        print ("red")  

if __name__ == '__main__':
    app = App(title='Core Temp',height=30,width=100,layout='grid',bg = bg_color())
    title = Text(app,"Temp:",grid=[0,0],color="white")
    text = Text(app,"xx",grid=[1,color="white")
    text.after(1000,update_label)
    app.display()

解决方法

我认为这是正确的方法,我做对了

from guizero import *
import random   

def read_sensor():
    return random.randrange(3200,5310,10) / 100

def read_cpu_temp():
    tFile = open('/sys/class/thermal/thermal_zone0/temp')
    temp = float(tFile.read())
    return temp / 1000

def update_label():
    text.value = read_cpu_temp()
    text.value = bg_color()
    # recursive call
    text.after(1000,update_label)  
def bg_color():
    print(read_cpu_temp())
    if read_cpu_temp() < 45.000:
        app.bg = "#00BFFF"
        print ("blue")
    elif 45.000 < read_cpu_temp() < 60.000:
        app.bg = "#FF8C00"
        print("orange")
    else:
        app.bg = "#FF0000"
        print("red")  

if __name__ == '__main__':
    app = App(title='Core Temp',height=30,width=100,layout='grid')
    title = Text(app,"Temp:",grid=[0,0],color="white")
    text = Text(app,"xx",grid=[1,color="white")
    text.after(1000,update_label)
    app.display()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...