25-12-2018, 04:15 PM
Hola de nuevo!
Estoy creando una pequeña aplicacion y probando el widget Menu de tkinter. Uso python 3.4. Cuando uso el widget Button es facil habilitar o deshabiltar el boton. Lo normal es instanciar el Button y hacer por ejemplo:
Pero lo que no logro resolver es hacer esto mismo con los submenus. Lo puedo deshabilitar dentro de su constructor. Pero claro, al no instanciar, no se como activarlo de nuevo dicho submenu.
Ejemplo basico:
Como se puede ver en esta linea:
archivoMenu.add_command(label = 'Guardar', state = 'disabled', command = guardar)
El parametro state es igual a 'disabled'. Por lo cual no se puede acceder. Y solo deseo que se acceda mediante alguna condicion creada.
¿Como puedo cambiar el state de los submenus a voluntad?
Muchas gracias
Estoy creando una pequeña aplicacion y probando el widget Menu de tkinter. Uso python 3.4. Cuando uso el widget Button es facil habilitar o deshabiltar el boton. Lo normal es instanciar el Button y hacer por ejemplo:
Código:
boton = Button(ventana, text = 'Boton 1', command = funcion)
boton.place(x = 10, y = 10)
# boton Deshabilitado
boton.config(state = 'disabled')
# boton Habilitado
boton.config(state = 'normal')
Pero lo que no logro resolver es hacer esto mismo con los submenus. Lo puedo deshabilitar dentro de su constructor. Pero claro, al no instanciar, no se como activarlo de nuevo dicho submenu.
Ejemplo basico:
Código:
from tkinter import Tk, Menu
# FUNCIONES --------------------------------------------------------------------
def abrir():
pass
def guardar():
pass
# Creacion de la ventana principal ---------------------------------------------
ventana = Tk()
ventana.title('Menu')
ventana.resizable(0, 0)
ventana.geometry('600x400')
# Creacion de la barra de Menu
menubar = Menu(ventana)
ventana.config(menu = menubar)
# Creacion de menu
archivoMenu = Menu(menubar, tearoff = 0)
# Creacion submenus
menubar.add_cascade(label = 'Archivo', menu = archivoMenu)
archivoMenu.add_command(label = 'Abrir', command = abrir)
archivoMenu.add_command(label = 'Guardar', state = 'disabled', command = guardar)
archivoMenu.add_separator()
archivoMenu.add_command(label = 'Salir', command = ventana.quit)
ventana.mainloop()
Como se puede ver en esta linea:
archivoMenu.add_command(label = 'Guardar', state = 'disabled', command = guardar)
El parametro state es igual a 'disabled'. Por lo cual no se puede acceder. Y solo deseo que se acceda mediante alguna condicion creada.
¿Como puedo cambiar el state de los submenus a voluntad?
Muchas gracias