我正在尝试为夏季工作创建一个GUI BMI计算器。 我想实现一个功能,一旦你计算了BMI,标签的颜色就会根据你的BMI而变化。
我目前的代码是:
self.AnswerlabelVariable = tkinter.StringVar() #Creates a variable used later for changing the label text
Answerlabel = tkinter.Label(self, text=u" ", textvariable=self.AnswerlabelVariable, anchor='w', fg="black",bg="light grey") #Creates a label
Answerlabel.grid(column=1,row=4, sticky='EW') #Defines where the label is and how it will move
...the calculation for the BMI happens...
if float(BMI2)<int(17): #Creates an 'if' statement
self.MessagelabelVariable.set("You are underweight!") #Changes a label to display a new message.
self.AnswerlabelVariable.set(fg='black', bg='blue') #Changes a labels colour (WIP WIP WIP)
当标签更改文字时,颜色不会改变,而是生成错误信息;
line 56, in OnCalculateButtonClick
self.AnswerlabelVariable.set(fg='black', bg='blue') #Changes a labels colour (WIP WIP WIP)
TypeError: set() got an unexpected keyword argument 'fg'
有人可以帮忙吗?
答案 0 :(得分:1)
我从未使用过StringVar类,但每当我想更改Label的颜色(或任何参数)时,我都会直接进行。
Answerlabel['fg'] = 'black'
答案 1 :(得分:1)
您需要使用标签的config()
方法修改其fg
和bg
属性,如下所示:
self.Answerlabel.config(fg='black', bg='blue') #Changes a labels colour