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:
Si porfavor alguien sabe como hacer eso me explica.
Estare aqui todo el tiempo gracias
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 (php) [Seleccionar]
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",
pos=(125, 37), size=(70, 25))
boton.Bind(wx.EVT_BUTTON, self.llamar)
self.Centre()
normal = wx.StaticText(
panel, -1, "Seleccione otro color", pos=(75, 15), style=wx.ALL)
# 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",
pos=(50, 100), size=(50, 25))
opciones = [u"Blanco", u"Rojo", u"Verde"]
self.opciones = wx.Choice(
panel1, wx.ID_ANY, choices=opciones, pos=(50, 50), size=(100, 25))
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
) que mate a los bichos segun el mapa en el que se encuentre. Que recoja cosas que encuentre por ahi y escape de ataques. Tengo unos avances PERO no exactamente de bot sino mas bien de interactuar con el equipo. (Tomar una captura de pantalla, hacer click en tal posicion, oprimir tal tecla) La idea es que parezca que es un humano y no solamente un programa.