Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Joe Fraddy en 28 Mayo 2016, 19:58 pm



Título: Problema con Botones wxpython
Publicado por: Joe Fraddy en 28 Mayo 2016, 19:58 pm
Bueno estoy haciendo un programa que hace una función especifica.

Quiero que inicie un proceso, pero que tambien lo detenga con el mismo boton, pero cuando entra al ciclo while corre el proceso, pero se cicla todo el programa.

este es mi codigo:

Código
  1. # -*- coding: utf-8 -*-
  2.  
  3. import wx
  4. import wx.xrc
  5.  
  6. class MyFrame1 ( wx.Frame ):
  7.  
  8. def __init__( self, parent ):
  9. wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 50,80 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
  10.  
  11. self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
  12.  
  13. bSizer1 = wx.BoxSizer( wx.VERTICAL )
  14.  
  15. self.m_button1 = wx.Button( self, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0 )
  16. bSizer1.Add( self.m_button1, 0, wx.ALL, 5 )
  17.  
  18.  
  19. self.SetSizer( bSizer1 )
  20. self.Layout()
  21.  
  22. self.Centre( wx.BOTH )
  23.  
  24. # Connect Events
  25. self.m_button1.Bind( wx.EVT_BUTTON, self.m_button1OnButtonClick )
  26.  
  27. # Virtual event handlers, overide them in your derived class
  28. def m_button1OnButtonClick( self, event ):
  29. if self.m_button1.GetLabel() == "MyButton":
  30. self.m_button1.SetLabel("OTRO")
  31. while self.m_button1.GetLabel() == "OTRO":
  32. print "hola"
  33. else:
  34. self.m_button1.SetLabel("MyButton")
  35.  
  36.  
  37. Window = wx.App(False)
  38. Principal = MyFrame1(None)
  39. Principal.Show(True)
  40. Window.MainLoop()

Saludos!!!


Título: Re: Problema con Botones wxpython
Publicado por: tincopasan en 29 Mayo 2016, 21:51 pm
2 cosas:
1) no uso wxpython, aunque se ve bastante similar a pyqt
2) no entiendo que querés hacer, pero en todo caso, si hay un bucle (dependiendo del nombre del boton), se va a repetir indefinidamente ya que no podrás volver a presionar el boton salvo que hagas threads. Y si solo quieres que haga algo dependiendo del nombre, no es necesario el while, con if ya te alcanza.


Título: Re: Problema con Botones wxpython
Publicado por: Joe Fraddy en 30 Mayo 2016, 02:27 am
Ok, el while si es necesario, ya que quiero que una operación se repita varias veces hasta que yo lo detenga.

Tendras algun ejemplo de threads o algún manual???

Saludos!!!!!


Título: Re: Problema con Botones wxpython
Publicado por: tincopasan en 30 Mayo 2016, 04:03 am
hace mucho que no uso python2.x ya ni me acuerdo, pero hay muchos tutoriales en la red, estaría bueno acostumbrarse a usar google, pero este link te va a orientar:
https://www.youtube.com/watch?v=4HKy5nNEqeQ , para más, usá un buscador.
salvo que tengas un código y una pregunta concreta.