elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  cambiar parametros a boton en wxpython
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: cambiar parametros a boton en wxpython  (Leído 2,013 veces)
metamax

Desconectado Desconectado

Mensajes: 10



Ver Perfil
cambiar parametros a boton en wxpython
« en: 7 Julio 2018, 22:13 pm »

HOla buenas tengo una duda acerca de como cambiar parametros a un boton en wxpython. Me explico:
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
  1. import wx
  2.  
  3.  
  4.  
  5. class ventana(wx.App):
  6.    """docstring for ventana"""
  7.  
  8.    def OnInit(self):
  9.        frame = crear_ventana()
  10.        frame.Show(True)
  11.        frame.Centre()
  12.        return True
  13.  
  14. ####SI EL USUARIO SELECCIONA BLANCO Y LE DA OK DEBE APARECER ESTA VENTAN:#######
  15.  
  16.  
  17. class ventana_error(wx.Dialog):
  18.  
  19.    def __init__(self, padre):
  20.  
  21.        wx.Dialog.__init__(self, padre, wx.NewId(),
  22.                           title="Error", size=(300, 100))
  23.        panel = wx.Panel(self, -1)
  24.        boton = wx.Button(panel, label="entendido",
  25.                          pos=(125, 37), size=(70, 25))
  26.        boton.Bind(wx.EVT_BUTTON, self.llamar)
  27.        self.Centre()
  28.        normal = wx.StaticText(
  29.            panel, -1, "Seleccione otro color", pos=(75, 15), style=wx.ALL)
  30.        # self.entrada_texto=wx.TextCtrl(panel,value="",pos=(5,27),size=(5,5),style=wx.TE_LEFT)
  31.  
  32.    def llamar(self, event):
  33.        self.Close(True)
  34.  
  35.  
  36. #################VENTANA PRINCIPAL: ##################
  37.  
  38. class crear_ventana(wx.Frame):
  39.  
  40.    def __init__(self):
  41.        wx.Frame.__init__(self, None, -1, title="Seleccione colores", size=(200, 200),
  42.                          pos=(100, 10), style=wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.CLOSE_BOX))
  43.        panel1 = wx.Panel(self, -1)
  44.  
  45.        boton1 = wx.Button(panel1, label="OK",
  46.                           pos=(50, 100), size=(50, 25))
  47.  
  48.        opciones = [u"Blanco", u"Rojo", u"Verde"]
  49.        self.opciones = wx.Choice(
  50.            panel1, wx.ID_ANY, choices=opciones, pos=(50, 50), size=(100, 25))
  51.        self.opciones.SetSelection(-1)
  52.  
  53.        #####AQUI ESTA EL PROBLERMA:######
  54.        boton1.Bind(wx.EVT_BUTTON, self.llamar_ventana1)
  55.        # Lo que necesito es cambiar ese llamar_ventana1
  56.        # por llamar_ventana2 pero dependiendo de lo que el
  57.        # usuario seleccione
  58.  
  59.        dec = self.opciones.Bind(
  60.            wx.EVT_CHOICE, self.Choice)  # esto se me ocurrio
  61.        # pero resulta que solo funciona una vez al ejecutarse
  62.        # tal vez que me devuelva un valor distinto cada vez que
  63.        # el usuario cambie de seleccion
  64.        # dec almacena eso que el usuario selecciona
  65.  
  66.        print("dec: ")
  67.        print(dec)
  68.  
  69.    def Choice(self, event):  # Esta es la funcion para verificar lo que se selecciono
  70.  
  71.        opcion_seleccionada = self.opciones.GetStringSelection()
  72.        opcion_seleccionada_uno = self.opciones.GetSelection()
  73.        print(opcion_seleccionada)
  74.        print(opcion_seleccionada_uno)
  75.        return opcion_seleccionada_uno
  76.  
  77.    def llamar_ventana1(self, event):  # si el usuario selecciona blanco
  78.        # llamar a esta funcion
  79.        ventana2 = ventana_error(self)
  80.        ventana2.ShowModal()
  81.        ventana2.Destroy()
  82.  
  83.    def llamar_ventana2(self, event):  # si selecciona otro color llamar a esta funcion
  84.        self.Destroy()
  85.  
  86.  
  87. app1 = ventana(0)
  88. app1.MainLoop()
  89.  
  90.  

Si porfavor alguien sabe como hacer eso me explica.
Estare aqui todo el tiempo gracias :)


« Última modificación: 7 Julio 2018, 22:31 pm por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cambiar el texto del boton inicio
Programación Visual Basic
moe88 9 3,060 Último mensaje 25 Abril 2006, 16:11 pm
por xXnewbieXx
Boton ayuda [wxPython]
Scripting
.:Swik:. 0 2,191 Último mensaje 26 Mayo 2010, 14:39 pm
por .:Swik:.
BATCH: Cambiar parametros de regedit para adaptadores de red
Scripting
d3xf4ult 2 5,848 Último mensaje 25 Enero 2013, 13:48 pm
por d3xf4ult
cambiar estilo a boton con javascript(solucionado)
Desarrollo Web
basickdagger 2 6,221 Último mensaje 9 Mayo 2013, 17:05 pm
por basickdagger
Cambiar estado boton c#
.NET (C#, VB.NET, ASP)
jcruzrg 2 3,653 Último mensaje 30 Agosto 2013, 19:07 pm
por jcruzrg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines