如何通过 tkinter python 中的循环激活 tkinter 文本框?

How to Activate tkinter textboxes via loop in tkinter python?

我使用 tkinter-Python 创建了 20 个文本框,如下所示:

现在我有一个列表 y1[]

如果 y1 中的元素数 = 6,
应激活 6 个文本框

如果 y1 中的元素数 = 3,
应激活 3 个文本框

我该怎么做?

以下是我迄今为止尝试过的内容:

 if len(y1) <= 10:
   i = 0
   for i in range(len(y1)):
    if i == 1:
      txtbox1.config(state=NORMAL)       
      txtbox1.insert(0, y[0])     
     if i == 2:
      txtbox2.config(state=NORMAL)
      txtbox2.insert(0, y[0])
     if i == 3:
      txtbox3.config(state=NORMAL)
      txtbox3.insert(0, y[0])
     if i == 4:
      txtbox4.config(state=NORMAL)
      txtbox4.insert(0, y[0])
     if i == 5:
      txtbox5.config(state=NORMAL)
      txtbox5.insert(0, y[0])
     if i == 6:
      txtbox6.config(state=NORMAL)
      txtbox6.insert(0, y[0])
     if i == 7:
      txtbox7.config(state=NORMAL)
      txtbox7.insert(0, y[0])
     if i == 8:
      txtbox8.config(state=NORMAL)
      txtbox8.insert(0, y[0])
     if i == 9:
      txtbox9.config(state=NORMAL)
      txtbox9.insert(0, y[0])
     if i == 10:
      txtbox10.config(state=NORMAL)
      txtbox10.insert(0, y[0])
     i = i + 1     
    

将文本框存储在数组中,然后遍历数组以enable/disable特定数量的文本框。

import tkinter as tk
import random

N = 20
activated_text_boxes = random.randint(0, N)

window = tk.Tk()

text_boxes = [tk.Text(window, height=1, width=300) for i in range(N)]

for idx, tb in enumerate(text_boxes):
    tb.pack()
    print(tb)
    if idx < activated_text_boxes:
        print("normal")
        tb["bg"] = "blue"
        tb["state"] = "normal"
    else:
        print("disabled")
        tb["bg"] = "red"
        tb["state"] = "disabled"

window.mainloop()