使用tkinter构建GUI时如何获取OptionMenu的当前选择

我正在使用tkinter构建GUI,这是新的。我创建了一个按钮,按下该按钮将打开一个新的弹出窗口。弹出窗口将具有两个optionmenu小部件,用户可以在其中选择任何一个选项并按保存按钮。我想访问两个Optionmenu的当前选择,并将其存储在外部npy文件中,该文件将显示在原始根窗口中。

但是,问题是尽管我尝试通过堆栈溢出和google浏览所有内容,但它仅显示默认值。您能帮我找出代码中的问题吗?

代码:

def change_settings():

win = Toplevel()
win.wm_title("Change Default Settings")
win.geometry("300x300")
l = Label(win,text="Change Default settings")
l.grid(row=1,column=1)
win.grid_rowconfigure(2,weight=1)
win.grid_rowconfigure(3,weight=1)
win.grid_rowconfigure(4,weight=1)
fact_frame = Frame(win)
variant_frame = Frame(win)

win.grid_columnconfigure(0,weight=1)
win.grid_columnconfigure(2,weight=1)

fact_var = StringVar(win)
variant_var = StringVar(win)
fact_var.set('A')
variant_var.set('1')
fact_choices = {'A','B'}
variant_choices = {'1','2','3'}
fact_label = Label(fact_frame,text="Select fact")
fact_label.pack()
factMenu = Optionmenu(fact_frame,fact_var,*fact_choices)
factMenu.pack()
fact_frame.grid(row = 2,column = 1)
variant_label = Label(variant_frame,text="Select variant")
variant_label.pack()
variantMenu = Optionmenu(variant_frame,variant_var,*variant_choices)
variantMenu.pack()
variant_frame.grid(row = 3,column = 1)
fact = fact_var.get()
variant = variant_var.get()
pickle_in = open("Diameter Specs.pkl","rb")
d = pickle.load(pickle_in)
d1 = np.array([fact,variant,d[variant][0],d[variant][1]])
np.save('settings_default',d1)
save_changes_button = Button(win,text="Save changes",command = save_settings)
save_changes_button.grid(row=4,column=1)

def save_settings():     win.destroy()

ys871018 回答:使用tkinter构建GUI时如何获取OptionMenu的当前选择

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3112526.html

大家都在问