Python 如何识别或更改for循环创建的标签?
我想更改一些标签上的配置,这些标签是由Python 如何识别或更改for循环创建的标签?,python,tkinter,Python,Tkinter,我想更改一些标签上的配置,这些标签是由for loop创建的,但不知道如何调用标签。我的代码如下所示: hand_info_labels = [ 'Hand Info', str(self.sb), 'Players', str(self.sb), 'Pre-flop', str(self.sb), 'Flop', str(self.sb), 'Turn', str(self.sb), 'River', str(self.sb)] for label i
for loop
创建的,但不知道如何调用标签。我的代码如下所示:
hand_info_labels = [
'Hand Info', str(self.sb), 'Players',
str(self.sb), 'Pre-flop', str(self.sb),
'Flop', str(self.sb), 'Turn',
str(self.sb), 'River', str(self.sb)]
for label in hand_info_labels:
ttk.Label(
hh_lblfrm, text=label).grid(
column=0, sticky=tk.W)
你怎么称呼这些标签?我在想类似于
hand\u info\u labels['hand info'].config(font=(“Courier”,44))
如果所有标签都不同,最简单的方法是将每个标签小部件保存到dict,然后可以使用dict指定任何标签
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
hh_lblfrm = tk.Frame(root)
hh_lblfrm.grid()
hand_info_labels = ['Hand Info', 'Players', 'Turn', 'River']
label_dict = {}
for row, label in enumerate(hand_info_labels):
widget = ttk.Label(hh_lblfrm, text=label)
widget.grid(row=row, column=0, sticky=tk.W)
label_dict[label] = widget
# Test to change config on one of the labels
label_dict['Players'].config(background='salmon')
如果要更改标签列表,可以使用循环:
# Test to change config on list of labels
widgets_to_change = ['Hand Info', 'Turn']
for widget in widgets_to_change:
label_dict[widget].config(background='khaki')
如果某些标签相同,则可以使用列表,但必须记住每个标签的索引 很好的响应和很棒的清理代码的方法。我本来想问一下
enumerate
,但谷歌快速搜索显示,enumerate函数是一种通过自动计数器循环的方法。如果我想更改label_dict['Players'].config(background='salmon')
行中的多个标签,使用列表是最好的方法吗?我更新了我的示例,介绍了如何更改标签列表。