Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - metamax

#1
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 (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 :)
#2
Hola bueno pues quiero crear un bot para un juego.  Actualmente estoy trabajando en python y quiero saber que tengo que hacer o por donde empezar. Tambien uso c++.
La idea del bot es simple( bueno relativamente  ;D ) 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.
Si pueden ayudarme con informacion o ejemplos que me sirvan me ayudarian mucho...
Gracias