get() en OptionMenu -> tkinter Python 3
Como puedo hacer que ‘get()’ obtenga el valor en el momento del clic en el botón? El valor impreso siempre se mantiene en el que he establecido por defecto…
langues = ['FR', 'EN']
nb_joueurs = [2, 3, 4]
var_langues = StringVar()
var_nb_joueurs = IntVar()
var_langues.set(langues[0])
var_nb_joueurs.set(nb_joueurs[0])
Label(self.frame_droit, text='Choix de la langue:').pack()
OptionMenu(self.frame_droit, var_langues, *langues).pack(expand=True)
Label(self.frame_droit, text='Nombre de joueurs:').pack()
OptionMenu(self.frame_droit, var_nb_joueurs, *nb_joueurs).pack(expand=True)
Button(self.frame_droit, text="NOUVELLE PARTIE", bg='#1394ab', fg='white', height=2,
width=20, command=lambda:print(f'{choix_langue} y {choix_nb_joueurs}')).pack()
choix_nb_joueurs=var_nb_joueurs.get()
choix_langue=var_langues.get()
davy.ai
Para obtener el valor en el momento en que se hace clic en el botón, debe mover las líneas que establecen las variables para obtener los valores dentro de la función lambda del parámetro de comando del botón. En este caso, debes reemplazar:
con:
De esta manera, el método
get()
se llamará en el momento de hacer clic en el botón y se imprimirán los valores correctos.