我正在尝试访问LabelFrame X中子项(标签)的文本/值,其中X本身在LabelFrame Y中,子项数在tkinter中更改。
有解决这个问题的简便方法吗?
我在下面提供了我的代码的简化版本。本质上,标签的数量根据某些输入(在示例中是随机的)而变化。 稍后我要做的是编写一个for循环,该循环将访问每个标签,然后根据文本/值将标签替换为新标签,或移至下一个标签。
import tkinter as tk
from tkinter import ttk
import numpy as np
win = tk.Tk()
LabelFrame_level_one = ttk.LabelFrame(text = " Level 1 ")
LabelFrame_level_one.grid(column = 0, row = 0, padx = 8, pady = 4)
def click_update_button():
delete_old_labels = LabelFrame_level_one.grid_slaves()
for labels_ in delete_old_labels:
labels_.destroy()
dynamic_number = max(round(np.random.rand() * 10), 1)
LabelFrame_level_two = ttk.LabelFrame(LabelFrame_level_one, text=" Level 2 ")
LabelFrame_level_two.grid(column=1, row=2, padx=4, pady=4, sticky="W")
for i in range(dynamic_number):
ttk.Label(LabelFrame_level_two, text="Dynamic entry" + str(i)).grid(column=0, row= i, pady=3)
Update_Button = ttk.Button(win, text="Update", command=click_update_button)
Update_Button.grid(column=1, row=0)
win.mainloop()