python 中创建了20个text组件,名字是text1~text20,如何用for aa in range(1,20)来实现给这20个text组件清空内容
发现一个高级解法
for i in range(1, 21):
exec(f"text{i}.delete(1.0, 'end')")
可以通过字符串格式化来动态生成组件名称,然后使用该名称访问组件并清空其内容。以下是一个示例代码:
import tkinter as tk
# 创建一个Tkinter窗口
window = tk.Tk()
# 创建 20 个文本组件
text1 = tk.Text(window)
text2 = tk.Text(window)
# test3 ...其余省略
# 生成组件名称列表,这里的range()根据需要修改
text_names = [f"text{i}" for i in range(1, 3)]
# 将文本组件添加到窗口中,并展示随机内容
for name in text_names:
text_widget = locals()[name] # 使用 locals() 获取局部变量中的组件对象
text_widget.pack()
text_widget.insert(tk.END, "随机内容")
# 清空所有文本组件的内容
for name in text_names:
text_widget = locals()[name] # 使用 locals() 获取局部变量中的组件对象
text_widget.delete('1.0', tk.END)
# 运行窗口主循环
window.mainloop()
自己建一个字典,让1~20对应text1~text20