Hola tod@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