I'm trying to create a custom Tkinter widget class, and I'm having some
difficulty getting it set up properly.
The class is called MacToolbar, saved in its own module MacToolbar.py,
and imported with this statement:
import MacToolbar
Here is the relevant portion of the class:
###relevant class code
class MacToolbar:
def __init__(self, master):
self.tk.call("p ackage", "require", "macsearchfield ")
self.tk.call('p ackage', 'require', 'tile')
def create(self):
self.baseframe = Tile.Frame(self , master)
self.baseframe. pack(side='top' , fill='both', expand='no')
def toolbar(self):
self.create()
self.newframe = Tile.Frame(self .baseframe)
self.newframe.p ack(fill='both' , expand='yes')
self.buttonfram e = Tile.Frame(self .newframe)
self.buttonfram e.pack(side='to p', fill='both', expand = 'yes')
I'm a bit confused on how to call a class that is imported via a module.
Both approaches I try produce errors:
The first approach:
self.topframe = MacToolbar.tool bar(self.mainfr ame)
yields this error:
AttributeError: 'module' object has no attribute 'toolbar'
The second approach:
self.topframe = MacToolbar.MacT oolbar.toolbar( self.mainframe)
yields this error:
TypeError: unbound method toolbar() must be called with MacToolbar
instance as first argument (got Frame instance instead)
I was expecting to be able to use the standard Class.Method notation in
calling MacToolbar class methods, but it appears that this does not work
at all: that's what I see in the first error above. Instead I have to
use Module.Class.Me thod notation? I've never seen this before.
Can someone point out what I am doing wrong, either in the construction
of the class, the way it's imported, or in how I'm calling methods?
--
Kevin Walzer
Code by Kevin
http://www.codebykevin.com