如何在Tkinter中创建动态标签颜色?

时间:2016-08-20 16:05:43

标签: python tkinter

我正在尝试为夏季工作创建一个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'

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

我从未使用过StringVar类,但每当我想更改Label的颜色(或任何参数)时,我都会直接进行。

Answerlabel['fg'] = 'black'

答案 1 :(得分:1)

您需要使用标签的config()方法修改其fgbg属性,如下所示:

self.Answerlabel.config(fg='black', bg='blue') #Changes a labels colour