[Python-es] Liado con bind en tkinter

mauricio rodriguez rodriguez.mauricio55 en gmail.com
Sab Mayo 26 17:02:46 CEST 2012


Aja, no sabia los por menores de como envía python a self, ahora me cierra
mas...

Lo otro, si, aún me falta para comprender la POO yo vengo de php +
programación procedimental por
lo que recién este año he tomado contacto, real, con python + poo,
muchas veces me encuentro codeando de forma procedimental usando clases...
si vieras que feo queda XD

Pero, poco a poco voy mejorando, ahora tengo que refactorizar mucho menos
que a principio de año


Una vez mas te agradesco por el brain dump =)


El 26 de mayo de 2012 07:01, Rock Neurotiko <miguelglafuente en gmail.com>escribió:

> 1) Respecto al bind, ahora que lo has dicho y he mirado el codigo que
> tenia, si, si que lo había usado... esta memoria u.U
>
> 2) Respecto a Python, te recomiendo leer sobre Programacion Orientada a
> Objetos en Python, supongo que algo sabes, ya que estas usando una clase.
>
> El self the python es un modo de referirse a si mismo (la instancia), algo
> parecido al "this" de java, lo único que en la mayoria de los lenguajes
> este "this" es enviado y recibido automaticamente, en Python no, bueno, no
> del todo, enviado si es enviado, pero recibido lo tienes que coger con una
> variable, que puede ser self, o lo que quieras, pero self es el estandar ;-)
>
> Cosas sobre el self: Si dentro de un metodo de clase declaras una variable
> como self.nombre = loquesea, esa variable será accesible en todos los
> metodos de esa clase.
>
> Luego, otra cosa que al principio extraña: Normalmente a las funciones se
> las llama como nombre(..), pues si esa funcion es un metodo de clase, no se
> llama por el nombre, sino como self.nombre(..), que indica que es el metodo
> de esa clase. Bueno, esto si lo estas haciendo desde dentro de la misma
> clase, sino necesitarías hacelo: nombredeclas.nombredemetodo(..)
>
> Bueno, pues eso, que si me he equivocado en algo (recien despertado me
> ando xD) corregidme :-)
>
> El 26 de mayo de 2012 02:15, mauricio rodriguez <
> rodriguez.mauricio55 en gmail.com> escribió:
>
> Si el error ya lo conocía, me salta  a cada rato XD, el asunto es que al
>> leer la documentación y ver los ejemplos del tipo
>>
>> *def funcion():*
>> *    foo*
>> *
>> *
>> *root.bind('<Return>, funcion)*
>> *
>> *
>> no entendía por que decía que le enviaba un argumento mas, lo único que
>> se me ocurre es que interprete self como otro argumento....
>> *
>> *
>> Bind es para establecer un evento de teclado o mouse y asociarlo a un
>> widget
>>
>> Se pueden usar en casi todos los widget y con una larga lista de
>>  pulsaciones de raton y teclas.
>>
>>
>> http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm
>>
>>
>> http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
>>
>>
>>
>> El 25 de mayo de 2012 21:03, Rock Neurotiko <miguelglafuente en gmail.com>escribió:
>>
>> Jajajaja, de nada, si en realidad los errores de python te suelen decir
>>> todo, en este caso:
>>> *TypeError: setp() takes exactly 1 argument (2 given)*
>>> Es decir: "Tio, la funcion solo tiene un argumento, ¿para que me pasas
>>> dos?" xDD
>>>
>>> Por cierto, para que sirve ese metodo?
>>>
>>> El 26 de mayo de 2012 02:00, mauricio rodriguez <
>>> rodriguez.mauricio55 en gmail.com> escribió:
>>>
>>> Genio, Genio !!!!
>>>>
>>>> Mira que probé cosas XD
>>>>
>>>>
>>>> Tan simple como eso gracias solucionado !!
>>>>
>>>> El 25 de mayo de 2012 20:53, Rock Neurotiko <miguelglafuente en gmail.com>escribió:
>>>>
>>>> Mira que he usado veces Tkinter y nunca habia oido hablar de ese metodo
>>>>> :-P
>>>>>
>>>>> Asi, a bote pronto(y como digo sin tener ni idea de ese metodo), lo
>>>>> que parece es que la funcion bind envia algun dato de mas a la funcion, has
>>>>> probado a poner otro parametro y ver que ocurre?
>>>>>
>>>>> Estilo:
>>>>>
>>>>> def setp(self, test):
>>>>>     print test
>>>>>
>>>>> El 26 de mayo de 2012 01:42, mauricio rodriguez <
>>>>> rodriguez.mauricio55 en gmail.com> escribió:
>>>>>
>>>>>> Hola tod en s:
>>>>>>
>>>>>> Estoy un poco liado con el método bind + tkinter, lo que estoy
>>>>>> buscando es establecer un bind para ejecutar una función
>>>>>> que contiene una serie de sentencias entre ellas el método *
>>>>>> root.destroy().*
>>>>>> *
>>>>>> *
>>>>>> se que si hago lo siguiente funciona
>>>>>> *
>>>>>> *
>>>>>> *def funcion():*
>>>>>> *    foo*
>>>>>> *
>>>>>> *
>>>>>> *root.bind('<Return>, funcion)*
>>>>>> *
>>>>>> *
>>>>>> pero en mi caso al estar dentro de una clase no funciona de ese modo
>>>>>>
>>>>>> He leído la documentación pero no me aclaro como resolver el asunto.
>>>>>> Les dejo el código simplificado para que vean, este es una de las
>>>>>> tantas formas que he probado
>>>>>>  y la que me pareció mas coherente ya que llama self.setp y es como
>>>>>> entiendo que se llaman
>>>>>>  a las funciones dentro de __init__
>>>>>>
>>>>>> Tal vez este muy equivocado y por eso la consulta.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *el código*
>>>>>>
>>>>>> *from Tkinter import **
>>>>>> *
>>>>>> *
>>>>>> *class Ch():*
>>>>>> *    '''doc srring*
>>>>>> *    '''*
>>>>>> *    def __init__(self):*
>>>>>> *
>>>>>> *
>>>>>> *        self.root=Tk()*
>>>>>> *        self.root.title('set')*
>>>>>> *        self.label=Label(self.root, text='Attention! First set
>>>>>> this')*
>>>>>> *        self.label.config(height=10, width=20)*
>>>>>> *        self.label.config(bg='red')*
>>>>>> *        labelfont=('times',15,'bold')*
>>>>>> *        self.label.config(font=labelfont)*
>>>>>> *        self.label.pack()*
>>>>>> *        self.root.bind('<Return>', self.setp )*
>>>>>> *        self.root.mainloop()*
>>>>>> *
>>>>>> *
>>>>>> *    def setp(self):*
>>>>>> *        return self.root.destroy()*
>>>>>> *
>>>>>> *
>>>>>> * *
>>>>>> *c=Ch()*
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *el error*
>>>>>> *
>>>>>> *
>>>>>> *Exception in Tkinter callback*
>>>>>> *Traceback (most recent call last):*
>>>>>> *  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1410, in
>>>>>> __call__*
>>>>>> *    return self.func(*args)*
>>>>>> *TypeError: setp() takes exactly 1 argument (2 given)*
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> *
>>>>>> gracias por leerme una vez mas
>>>>>>
>>>>>> _______________________________________________
>>>>>> Python-es mailing list
>>>>>> Python-es en python.org
>>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Miguel García Lafuente - Rock Neurotiko
>>>>> Vocal de la Junta Directiva Nacional del Partido Pirata.
>>>>> Coordinador de Jóvenes Piratas en Madrid.
>>>>>
>>>>> "Libertad en lugar de miedo." - "Información libre, sociedad libre."
>>>>>
>>>>> El contenido de este e-mail es privado, no se permite la revelacion
>>>>> del contenido de este e-mail a gente ajena a él.
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es en python.org
>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>>
>>> --
>>> Miguel García Lafuente - Rock Neurotiko
>>> Vocal de la Junta Directiva Nacional del Partido Pirata.
>>> Coordinador de Jóvenes Piratas en Madrid.
>>>
>>> "Libertad en lugar de miedo." - "Información libre, sociedad libre."
>>>
>>> El contenido de este e-mail es privado, no se permite la revelacion del
>>> contenido de este e-mail a gente ajena a él.
>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> Miguel García Lafuente - Rock Neurotiko
> Vocal de la Junta Directiva Nacional del Partido Pirata.
> Coordinador de Jóvenes Piratas en Madrid.
>
> "Libertad en lugar de miedo." - "Información libre, sociedad libre."
>
> El contenido de este e-mail es privado, no se permite la revelacion del
> contenido de este e-mail a gente ajena a él.
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120526/e9f86426/attachment.html>


Más información sobre la lista de distribución Python-es