Python - ejecucion de eventos

   
Vista:

ejecucion de eventos

Publicado por alex (3 intervenciones) el 06/04/2013 12:11:04
soi pricipiante en esto del python, tengo dos botones con los eventos de raton y llamo una funcion desde el evento que ejecuta un print pero se ejecuta una sola ves y me gustaria que se ejecutara repetitibamente durante el evento
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

ejecucion de eventos

Publicado por xve (1229 intervenciones) el 06/04/2013 14:46:45
Hola Alex, no nos muestras el código, y casi no das información, como por ejemplo, que tipo de entorno gráfico estas utilizando.

Cuando te refieres repetidamente, te refieres mientras el botón esta pulsado?

Si nos puedes dar mas información...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejecucion de eventos

Publicado por alex (3 intervenciones) el 07/04/2013 00:23:02
discupen las prisas el entorno grafico es wxpython el codigo es el que sigue es a modo didactico de momento con cualquier evento imagino que se implementaria igual si es que se puede. lo que quiero es una rapeticion del print en este caso que podria ser datos serie durante el evento

codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import wx
 
class MyFrame(wx.Frame):
    """Frame with Panel and one Button, inherits wx.Frame"""
 
    def __init__(self, parent, id):
 
        wx.Frame.__init__(self, parent, id, 'Move mouse over button',
        size=(350, 150))
        self.panel = wx.Panel(self)
        self.butn1 = wx.Button(self.panel, label="Up", pos=(125, 15))
        self.butn2 = wx.Button(self.panel, label="Dow", pos=(125, 50))
    # get original colour
        self.colour = self.butn1.GetBackgroundColour()
        self.butn1.Bind(wx.EVT_BUTTON, self.onButtonClick)
        self.butn2.Bind(wx.EVT_BUTTON, self.onButton1Click)
 
        self.butn1.Bind(wx.EVT_ENTER_WINDOW, self.onMouseOver)
        self.butn1.Bind(wx.EVT_LEAVE_WINDOW, self.onMouseLeave)
        self.butn2.Bind(wx.EVT_LEAVE_WINDOW, self.onMouseLeave2)
 
    def onButtonClick(self, event):
    # do something ...
        #self.panel.SetBackgroundColour('Yellow')
        self.butn1.SetBackgroundColour('Blue')
        self.panel.Refresh()
    def onButton1Click(self, event):
    # do something ...
        #self.panel.SetBackgroundColour('Yellow')
        self.butn2.SetBackgroundColour('Blue')
        self.panel.Refresh()
    def onMouseOver(self, event):
    # mouseover changes colour of button
        self.butn1.SetBackgroundColour('Green')
        btn(1)
        #event.Skip()
    def onMouseLeave(self, event):
    # mouse not over button, back to original colour
        self.butn1.SetBackgroundColour(self.colour)
        #event.Skip()
        btn(0)
    def onMouseLeave2(self, event):
    # mouse not over button, back to original colour
        self.butn2.SetBackgroundColour(self.colour)
        event.Skip()
def btn(bt):
    for i in xrange (10):
        if bt==1:
            print 'over'
 
# test it ...
if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = MyFrame(parent=None, id=-1)
    frame.Show()
    app.MainLoop()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

ejecucion de eventos

Publicado por xve (1229 intervenciones) el 07/04/2013 21:08:16
Hola Alex, he probado tu código, y ahora se imprime 10 veces "over" en la consola...

haber si he entendido bien, tu quieres que por ejemplo mientras se este ejecutando el evento mouseover, se vaya imprimiendo seguidamente hasta que se deje de ejecutar el evento mouseover?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejecucion de eventos

Publicado por alex (3 intervenciones) el 07/04/2013 22:10:08
exacto xve eso es lo que quiero ahora se eecuta 10 veces como bien as dicho pero me gustaria que fuece repetitivo indefinidamente durante el evento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar