Как определить или изменить метки, созданные для цикла? - PullRequest
0 голосов
/ 17 декабря 2018

Я хотел бы изменить конфиги на некоторых из моих ярлыков, которые были созданы 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_info_labels['Hand Info'].config(font=("Courier", 44))

1 Ответ

0 голосов
/ 17 декабря 2018

Если все метки отличаются, самый простой способ - сохранить каждый виджет метки в 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')

Если некоторые метки совпадают, вы можете использовать список вместо, но тогда вы будетедолжны помнить индекс каждой метки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...