昨天我问了这个问题Creating elements by loop Tkinter了解如何动态创建一些要点。现在我想添加一个清除按钮,以便在按下时重置整个表单。我已尝试将列表设置回 [],但没有成功。
编辑 - 所以基本上,当我按下重置键时,我希望它看起来与加载表单时完全一样。
最佳答案
使用 destroy
方法删除按钮:
for button in self.button:
button.destroy()
import Tkinter as tk
class ButtonBlock(object):
def __init__(self, master):
self.master = master
self.button = []
self.button_val = tk.IntVar()
entry = tk.Entry()
entry.grid(row=0, column=0)
entry.bind('<Return>', self.onEnter)
entry.focus()
clear_button = tk.Button(master, text='Clear', command=self.onClear)
clear_button.grid(row=0, column=1)
def onClear(self):
for button in self.button:
button.destroy()
def onEnter(self, event):
entry = event.widget
num = int(entry.get())
self.onClear()
for i in range(1, num+1):
self.button.append(tk.Radiobutton(
self.master, text=str(i), variable=self.button_val, value=i,
command=self.onSelect))
self.button[-1].grid(sticky='WENS', row=i, column=0, padx=1, pady=1)
def onSelect(self):
print(self.button_val.get())
if __name__ == '__main__':
root = tk.Tk()
ButtonBlock(root)
root.mainloop()
关于python - Tkinter - 我将如何去重置对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658767/