我只是想知道如何给我的输出添加颜色。代码如下: 使用pythontkintergui。你知道吗
if bmi < 18.5:
self.answer_label['text'] = "A person with a BMI of " + str(bmi) + " is underweight "
elif 18.5 <= bmi < 25:
self.answer_label['text'] = "A person with a BMI of " + str(bmi) + " has a healthy weight"
elif 25 <= bmi < 30:
self.answer_label['text'] = "A person with a BMI of " + str(bmi) + " is overweight"
elif bmi >= 30:
self.answer_label['text'] = "A person with a BMI of " + str(bmi) + " is obese"
所以,主要问题是在tkinter中,Label小部件接受单一颜色。你知道吗
如果用
.pack(side="left")
包装每个标签,并为每个小部件分配一种颜色,那么您可以将各种标签并排地组成文本。你知道吗这不太实际。你知道吗
另一种给文本着色的方法是使用
tkinter.Text
小部件。问题是,在Label
的另一面,Text
小部件太宽,允许许多选项格式化其中的文本。一个使用“文本”小部件作为主要组件的程序,只要有几百行代码,就可以像microsoftword那样成为富文本的文本编辑器。你知道吗缺点是文档很难找到,示例很少,而且不完整。(这是我给你这个答案的主要动机——再举一个“现实世界”的例子也不错)。你知道吗
文本小部件最完整(但仍然缺乏)的文档在这里:http://effbot.org/tkinterbook/text.htm
通过阅读它,您发现要在文本小部件中输入彩色文本,您必须使用text属性预先配置“tags”,然后使用它的
insert
您的文本使用索引作为位置,并标记您正在使用的标记。你知道吗我为
Text
小部件创建了一个子类,它对一些样式元素(以及“state”配置)进行硬编码,这样它的行为更像一个标签,并添加了两个新方法:append
它允许您将文本添加到元素的末尾,指定颜色和背景色,以及clear
清除所有内容并重新开始。你知道吗我们的想法是使用下面的“ColoredLabel”类列表来代替“Label”小部件。当它从tkinter小部件继承时,“configure”、“pack”、“grid”等方法将正常工作,然后使用其“append”方法创建其内容:
如果您的“answer\u label”属性被定义为“ColoredLabel”,那么您只需将代码编写为:
(当然,如果您希望整个标签的颜色相同,
Label
支持它—只需对原始文本执行self.answer_label['foreground'] = 'red'
)相关问题 更多 >
编程相关推荐