如何在Tkinter中创建动态标签颜色?
我正在尝试为夏季作品创建GUI BMI计算器。 我想实现一个功能,一旦您计算出BMI,标签的颜色会根据您的BMI而变化。如何在Tkinter中创建动态标签颜色?
我当前的代码如下:
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'
任何人都可以帮忙吗?
您需要使用标签的config()
方法修改其fg
和bg
特性,如:
self.Answerlabel.config(fg='black', bg='blue') #Changes a labels colour
我从来没有使用STRINGVAR类,但每当我想更改标签的颜色(或参数),我只是直接去做。
Answerlabel['fg'] = 'black'
的'tkinter'模块提供了'配置()'或'配置( )'函数来修改小部件的属性,它看起来比需要更改每个参数的新行更清洁。 – Dartmouth
谢谢你让我知道:) – KnowNothing
'self.Answerlabel [ 'FG'] = '黑' #Changes一个标签颜色(WIP WIP WIP)'给我的错误'AttributeError的: '_tkinter.tkapp' 对象有没有属性' Answerlabel'' –
我试过了。当我把它在代码中,我得到了以下错误:self.AnswerlabelVariable.configure(FG = '黑',BG = '蓝色')#Changes一个标签颜色(WIP WIP WIP) AttributeError的: 'STRINGVAR' 对象有没有属性'configure' –
是的,你需要在'Answerlabel'标签上调用'configure'。我会更新我的答案! 这是因为AnswerlabelVariable不负责标签看起来像是要修改的内容,它只包含它应该显示的文本。所以,你需要'configure()'Label对象,而不是它的文本变量。 'AttributeError的: – Dartmouth
我尝试新的,编辑的代码时收到以下错误消息“_tkinter.tkapp”对象没有属性“AnswerLabel'' 还值得注意的,我试图代码为'self.config.Answerlabel(FG =“黑”,BG =“蓝”)'获取错误'AttributeError的:“功能”对象有没有属性“MessageLabel'' 顺便说一下,谢谢你们继续帮助:) –