【发布时间】:2021-08-18 03:11:40
【问题描述】:
我有一个通过索引编号分配给不同标签的颜色列表。我有一个 for 循环和一个 if 语句来检查任何颜色是否为黑色。如果颜色是“黑色”,我希望 for 循环将该标签的“fg”属性更改为白色。我可以正确格式化变量“label_name”,但无法将其识别为标签,因此我可以更改属性。
注意:实际代码中的颜色是变化的变量
注意:据我了解,您可以交替使用十六进制代码“#FFFFFF”或“白色”
color_list = ['red','blue', 'green', 'black']
counter = 0
for item in color_list:
counter += 1
if item.find("black"):
label_name = "header{}".format(counter)
print(label_name)
# this line is where I can't get passed
label_name['fg'] = 'white'
header1 = Label(root, bg=color_list[0])
header2 = Label(root, bg=color_list[1])
header3 = Label(root, bg=color_list[2])
header4 = Label(root, bg=color_list[3])
header1.grid(row=1, column=0)
header2.grid(row=1, column=1)
header3.grid(row=2, column=0)
header4.grid(row=2, column=1)
我尝试使用 .config 同样的问题:
label_name.config(fg = 'white')
我也尝试过将所有标签文本更改为白色:
font_color = '#000000'
for item in color_list:
if item.find('#000000'):
font_color = '#FFFFFF'
else: pass
header1 = Label(root, bg=color_list[0], fg=font_color)
【问题讨论】:
-
label_name是字符串吗? -
注意
tkinter为header1生成的内部名称不是"header1"。您可以使用Label()的name选项指定内部名称,然后使用root.nametowidget()获取具有给定名称的小部件的引用。另请注意,在使用name选项时,您应该确保名称是唯一的。
标签: python tkinter attributes label counter