“[原帖]我在我的tkinter窗口中选择特定选项后尝试使用Radiobuttons显示更多输入字段,但我的'selection'变量的值总是默认为0,并且永远不会改变。[现已修复]
而且,除此之外,我不确定如何在选项之间切换时如何继续更新我的tkinter窗口。我试图实现tkinter update()函数,但它对我来说还没有用。任何有用的建议将受到高度赞赏。[原帖结束]“
这是我原帖的后续内容,有没有办法在我在条目数之间切换后清除多个输入字段。即。如何刷新tkinter窗口以保持条目数与我的选择一致?
我在下面发布了我的演示代码......
from tkinter import *
import time
def selection_window():
selection = var.get()
### Debug ###
print("going in...")
print(selection)
if selection == 1:
Label(master, text="Info").grid(row=0, column=2)
Label(master, text=" Input:").grid(row=1, column=2)
e3 = Entry(master)
e3.grid(row=1, column=3)
print("going in2...") ### Debug ###
elif selection == 2:
Label(master, text="Info").grid(row=0, column=2)
Label(master, text=" Input:").grid(row=1, column=2)
e3 = Entry(master)
e3.grid(row=1, column=3)
#####################################################################
#####################################################################
Label(master, text="Info2").grid(row=0, column=4)
Label(master, text=" Input2:").grid(row=1, column=4)
e23 = Entry(master)
e23.grid(row=1, column=5)
print("going in3...") ### Debug ###
if __name__ == '__main__':
master = Tk()
master.title('Demo A')
#####################################################################
### Display - Multiple fields
Label(master, text="More Info").grid(row=0, column=0)
Label(master, text="Type:").grid(row=1, column=0)
e7 = Entry(master)
e7.grid(row=1, column=1)
#####################################################################
#####################################################################
Button(master, text='Quit', command=master.quit).grid(row=30, column=0, sticky=W, pady=10)
#####################################################################
#####################################################################
var = IntVar()
Label(master, text="Select options").grid(row=33, column=0, sticky=W)
Radiobutton(master, text="1", variable=var, value=1).grid(row=33, column=1, sticky=W)
Radiobutton(master, text="2", variable=var, value=2).grid(row=33, column=2, sticky=W)
Button(master, text="Options+", command=selection_window).grid(row=34, column=0, sticky=W, pady=10)
master.geometry("640x360")
#####################################################################
## Update window
#####################################################################
master.mainloop()
time.sleep(0.1)
### other method to update window(NOT WORKING)
# master.update_idletasks()
# master.update()