[Tkinter-discuss] problem of understanding objects
Cameron Laird
Cameron at phaseit.net
Sun Jun 27 21:06:43 CEST 2010
On Sat, Jun 26, 2010 at 08:26:12AM +0200, zizou afix wrote:
.
.
.
> i try to organize my code. but i ' ve some problem with basic objet oriented
> programing use.
> if some one can show me the way to destroy my canvas with this structure.
> thanks
>
> laurent
>
> ##########################################################################
> from Tkinter import *
>
> class Root:
>
> def __init__(self, master):
> myMenu = MyMenu(master)
> myAccueil = MyAccueil(master)
>
> class MyAccueil(object):
> def __init__(self, master):
>
> canvas = Canvas(master, width = 500, height = 500, bg='yellow' )
> canvas.pack(expand = YES, fill = BOTH)
>
> def delete(self): # my object problem
> canvas.destroy() # is here
>
>
> class MyMenu(object):
>
> def __init__(self, master):
> self.menubar = Menu(master)
> master.config(menu=self.menubar)
> self.createmenubar(master)
>
> def createmenubar(self, master):
> self.Fmenu = Menu(self.menubar, tearoff=0)
> self.menubar.add_cascade(label="exec",menu=self.Fmenu)
> # exec Content
> self.Fmenu.add_command(label="bang", command=self.bang)
> # Displays menubar
> master.config(menu=self.menubar)
>
> def bang(self): # and
> myAccueil.delete() # here
>
> root = Tk()
> app = Root(root)
>
> root.mainloop()
> ##########################################################################
.
.
.
I'm uncertain what you're trying to achieve; does the following
help you approach your goal?
###############################################################
from Tkinter import *
class Root:
def __init__(self, master):
myMenu = MyMenu(master)
self.myAccueil = MyAccueil(master)
class MyAccueil(object):
def __init__(self, master):
self.canvas = Canvas(master, width = 500, height = 500, bg='yellow' )
self.canvas.pack(expand = YES, fill = BOTH)
def delete(self): # my object problem
self.canvas.destroy() # is here
class MyMenu(object):
def __init__(self, master):
self.menubar = Menu(master)
master.config(menu=self.menubar)
self.createmenubar(master)
def createmenubar(self, master):
self.Fmenu = Menu(self.menubar, tearoff=0)
self.menubar.add_cascade(label="exec",menu=self.Fmenu)
# exec Content
self.Fmenu.add_command(label="bang", command=self.bang)
# Displays menubar
master.config(menu=self.menubar)
def bang(self): # and
app.myAccueil.delete() # here
root = Tk()
app = Root(root)
root.mainloop()
More information about the Tkinter-discuss
mailing list