[Tkinter-discuss] Calling functions outside the class
craf
prog at vtr.net
Fri Dec 17 04:35:36 CET 2010
Hi.
I'm testing this code:
-------------------------------------------------------------------
from Tkinter import *
class MyApp:
def __init__(self, parent):
self.myParent = parent ### (7) remember my parent, the root
self.myContainer1 = Frame(parent)
self.myContainer1.pack()
self.button1 = Button(self.myContainer1)
self.button1.configure(text="OK", background= "green")
self.button1.pack(side=LEFT)
self.button1.bind("<Button-1>", self.button1Click) ### (1)
self.button2 = Button(self.myContainer1)
self.button2.configure(text="Cancel", background="red")
self.button2.pack(side=RIGHT)
self.button2.bind("<Button-1>", self.button2Click) ### (2)
def button1Click(self, event): ### (3)
if self.button1["background"] == "green": ### (4)
self.button1["background"] = "yellow"
else:
self.button2["background"] = "green"
def button2Click(self, event): ### (5)
self.myParent.destroy() ### (6)
root = Tk()
myapp = MyApp(root)
root.mainloop()
---------------------------------------------------------------------
Works without problems, but if I want to get the functions of the class,
then the problems begin.
from Tkinter import *
class MyApp:
def __init__(self, parent):
self.myParent = parent ### (7) remember my parent, the root
self.myContainer1 = Frame(parent)
self.myContainer1.pack()
self.button1 = Button(self.myContainer1)
self.button1.configure(text="OK", background= "green")
self.button1.pack(side=LEFT)
self.button1.bind("<Button-1>", self.button1Click) ### (1)
self.button2 = Button(self.myContainer1)
self.button2.configure(text="Cancel", background="red")
self.button2.pack(side=RIGHT)
self.button2.bind("<Button-1>", self.button2Click) ### (2)
def button1Click(self, event): ¡¡¡FUNCTION OUTSIDE THE CLASS!!!
if self.button1["background"] == "green": ### (4)
self.button1["background"] = "yellow"
else:
self.button2["background"] = "green"
def button2Click(self, event): ¡¡¡FUNCTION OUTSIDE THE CLASS!!!
self.myParent.destroy() ### (6)
root = Tk()
myapp = MyApp(root)
root.mainloop()
What would be the correct way to call them?
Thanks in advance
Regards
Cristian Abarzua F
More information about the Tkinter-discuss
mailing list