如何通过 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()
我使用 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()