Problema con Botones wxpython

Iniciado por Joe Fraddy, 28 Mayo 2016, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

Joe Fraddy

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 (python) [Seleccionar]
# -*- coding: utf-8 -*-

import wx
import wx.xrc

class MyFrame1 ( wx.Frame ):

def __init__( self, parent ):
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 )

self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )

bSizer1 = wx.BoxSizer( wx.VERTICAL )

self.m_button1 = wx.Button( self, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer1.Add( self.m_button1, 0, wx.ALL, 5 )


self.SetSizer( bSizer1 )
self.Layout()

self.Centre( wx.BOTH )

# Connect Events
self.m_button1.Bind( wx.EVT_BUTTON, self.m_button1OnButtonClick )

# Virtual event handlers, overide them in your derived class
def m_button1OnButtonClick( self, event ):
if self.m_button1.GetLabel() == "MyButton":
self.m_button1.SetLabel("OTRO")
while self.m_button1.GetLabel() == "OTRO":
print "hola"
else:
self.m_button1.SetLabel("MyButton")


Window = wx.App(False)
Principal = MyFrame1(None)
Principal.Show(True)
Window.MainLoop()


Saludos!!!

tincopasan

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.

Joe Fraddy

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!!!!!

tincopasan

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.