Tengo una ventana con una lista desplegable con algunos colores y tengo un boton mas abajo que dice "OK"
La idea es que el usuario seleccione algun color de la lista y luego le de al boton "OK".
Si el usuario selecciona el color blanco se debe abrir un pop-up con un mensaje de error.
Si selecciona algun otro color se debe cerrar la ventana.
Aqui el codigo en python:
Código
import wx class ventana(wx.App): """docstring for ventana""" def OnInit(self): frame = crear_ventana() frame.Show(True) frame.Centre() return True ####SI EL USUARIO SELECCIONA BLANCO Y LE DA OK DEBE APARECER ESTA VENTAN:####### class ventana_error(wx.Dialog): def __init__(self, padre): wx.Dialog.__init__(self, padre, wx.NewId(), title="Error", size=(300, 100)) panel = wx.Panel(self, -1) boton = wx.Button(panel, label="entendido", boton.Bind(wx.EVT_BUTTON, self.llamar) self.Centre() normal = wx.StaticText( # self.entrada_texto=wx.TextCtrl(panel,value="",pos=(5,27),size=(5,5),style=wx.TE_LEFT) def llamar(self, event): self.Close(True) #################VENTANA PRINCIPAL: ################## class crear_ventana(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, title="Seleccione colores", size=(200, 200), pos=(100, 10), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.CLOSE_BOX)) panel1 = wx.Panel(self, -1) boton1 = wx.Button(panel1, label="OK", opciones = [u"Blanco", u"Rojo", u"Verde"] self.opciones = wx.Choice( self.opciones.SetSelection(-1) #####AQUI ESTA EL PROBLERMA:###### boton1.Bind(wx.EVT_BUTTON, self.llamar_ventana1) # Lo que necesito es cambiar ese llamar_ventana1 # por llamar_ventana2 pero dependiendo de lo que el # usuario seleccione dec = self.opciones.Bind( wx.EVT_CHOICE, self.Choice) # esto se me ocurrio # pero resulta que solo funciona una vez al ejecutarse # tal vez que me devuelva un valor distinto cada vez que # el usuario cambie de seleccion # dec almacena eso que el usuario selecciona print("dec: ") print(dec) def Choice(self, event): # Esta es la funcion para verificar lo que se selecciono opcion_seleccionada = self.opciones.GetStringSelection() opcion_seleccionada_uno = self.opciones.GetSelection() print(opcion_seleccionada) print(opcion_seleccionada_uno) return opcion_seleccionada_uno def llamar_ventana1(self, event): # si el usuario selecciona blanco # llamar a esta funcion ventana2 = ventana_error(self) ventana2.ShowModal() ventana2.Destroy() def llamar_ventana2(self, event): # si selecciona otro color llamar a esta funcion self.Destroy() app1 = ventana(0) app1.MainLoop()
Si porfavor alguien sabe como hacer eso me explica.
Estare aqui todo el tiempo gracias