【发布时间】:2021-11-30 17:04:02
【问题描述】:
在我正在构建的 tkinter 应用程序(win10 python 3.8)中,每次打开一个新文件时,我都会得到一个新列表,我将其分发到文本框(Ok)、组合框(ok)等。当我打开第一个列表时复选框循环构建正常,下一个名为复选框的文件不会更改。我无法更新复选框,我的意思是,删除以前的列表并插入另一个。在我使用按钮的示例中(在应用程序 askopenfilename 中),列表构建一个波纹管另一个。我需要一个替换另一个。我相信我需要使用 grid.clear() 或销毁,但是如何?提前致谢。
from tkinter import *
root = Tk()
root.geometry('400x400')
my_friends = ['Donald', 'Daisy', 'Uncle Scrooge', 'Ze Carioca']
my_heroes = ['Captain America', 'Hulk', 'Spider Man', 'Black Widow',
'Wanda Maximoff', 'Vision', 'Winter Soldier']
what_list = ' '
def list_my_friends():
global what_list
what_list = my_friends
create_cbox()
def list_my_heroes():
global what_list
what_list = my_heroes
create_cbox()
def create_cbox():
for index, friend in enumerate(what_list):
current_var = tk.StringVar()
current_box = tk.Checkbutton(root, text= friend,
variable = current_var,
onvalue = friend,
offvalue = '')
current_box.pack()
button1= tk.Button(root, text = "my_friends",command=lambda:list_my_friends()).pack()
button2= tk.Button(root, text = "my_heroes",command=lambda:list_my_heroes()).pack()
root.mainloop()
【问题讨论】:
标签: list loops tkinter checkbox replace