首页 > 解决方案 > 有什么方法可以清除所有小部件并重新创建相同的小部件,例如刷新屏幕以在 tkinter python 中获取新输入?

问题描述

像刷新窗口一样,它应该清除条目中的所有信息清除所有复选框和旋转框

标签: pythonpython-3.xtkinter

解决方案


试试这个代码:

import tkinter as tk

def print_all():
    for entry in entries:
        print(entry.get())
    for var in spinbox_vars:
        print(var.get())
    for var in checkbutton_vars:
        print(var.get())

def clear_all():
    for entry in entries:
        entry.delete(0, "end")
    for var in spinbox_vars:
        var.set(0)
    for var in checkbutton_vars:
        var.set(False)

root = tk.Tk()

entries = []
for i in range(3):
    # Note that `entry = tk.Entry(root)` and `entry.pack()` are on 2 lines
    entry = tk.Entry(root)
    entry.pack()
    entries.append(entry)

spinbox_vars = []
for i in range(3):
    var = tk.IntVar(root)
    spinbox = tk.Spinbox(root, textvariable=var)
    spinbox.pack()
    spinbox_vars.append(var)

checkbutton_vars = []
for i in range(3):
    var = tk.BooleanVar(root)
    checkbutton = tk.Checkbutton(root, variable=var)
    checkbutton.pack()
    checkbutton_vars.append(var)

button = tk.Button(root, text="Clear All", command=clear_all)
button.pack()

button = tk.Button(root, text="Print All", command=print_all)
button.pack()

root.mainloop()

它将 3 个条目Spinboxes 和 3 Checkbuttons 放入列表中。之后,我可以遍历每个列表并调用.get().set(...)获取/设置小部件中的值。


推荐阅读