关于#python#的问题:python 中创建了20个text组件,名字是text1~text20,如何用for aa in range(1,20)来实现给这20个text组件清空内容

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