user interface - Python/Tkinter: reading inputs from a subwindow -
i'm preparing gui application python , tkinter (i'm newbie language).
i have main window , config sub-window text parameters open with:
def config_open(): global wdw, e wdw = toplevel() wdw.geometry('+400+400') w = label(wdw, text="parameter 1", justify=right) w.grid(row=1, column=0) e = entry(wdw) e.grid(row=1, column=1) e.focus_set() then add "ok" button calls:
def config_save(): global wdw, e user_input = e.get().strip() print user_input it works, i'm declaring global. there better way refer elements inside subwindow?
from tkinter import * def config_open(): wdw = toplevel() wdw.geometry('+400+400') # makes window modal wdw.grab_set() # variable store entry value user_input = stringvar() label(wdw, text="parameter 1", justify=right).grid(row=1, column=0) e = entry(wdw, textvariable=user_input) e.grid(row=1, column=1) e.focus_set() button(wdw, text='ok', command=wdw.destroy).grid(row=2, column=1) # show window , wait close wdw.wait_window(wdw) # window has been closed data = {'user_input': user_input.get().strip(), 'another-option': 'value of another-option'} return data class app: def __init__(self): self.root = tk() self.root.geometry('+200+200') self.label_var = stringvar() self.user_input = none button(self.root, text='configure', command=self.get_options).place(relx=0.5, rely=0.5, anchor=center) label(self.root, textvariable=self.label_var).place(relx=0.5, rely=0.3, anchor=center) self.root.mainloop() def get_options(self): options = config_open() self.user_input = options['user_input'] self.label_var.set(self.user_input) app()
Comments
Post a Comment