Frame widget (title and geometry)
Eric Brunel
eric_brunel at despammed.com
Fri Jun 24 11:57:30 EDT 2005
On Fri, 24 Jun 2005 10:21:01 -0400, Shankar Iyer (siyer at Princeton.EDU) <siyer at Princeton.EDU> wrote:
> Hi,
>
> I am still new to Python and Tkinter, so I apologize in advance if I do not
> word my question optimally. I am trying to use a frame widget as the parent
> for other widgets. There is a class with the header "class classtitle(Frame):"
> in a script called classtitle.py. Having imported classtitle, I create a Frame
> widget within my gui using the command "w = Frame(self)." Then, I grid this
> widget and issue the command "classinstance = classtitle.classtitle(w)." When
> I attempt to execute this code, I receive an error claiming that w lacks
> geometry and title attributes that the code in classtitle.py attempts to access.
> Does this mean that I cannot use a Frame widget as w in this situation? Thanks
> for your help.
Please post a short script showing the behavior you get. Without this, we cannot help you much. The only thing I can tell you right now is that you obviously don't need to create a Frame via "w = Frame(self)": since you defined your classtitle class as a sub-class of frame, every instance of classtitle is also an instance of Frame, so you can use it as such:
>>> from Tkinter import *
>>>root = Tk()
>>> class MyClass(Frame):
... pass
...
>>> o = MyClass(root)
>>> o.grid()
just works. If you have to add anything in the constructor, do not forget to call the constructor for Frame in it, as in:
>>> class MyClass(Frame):
... def __init__(self, *args, **options):
... Frame.__init__(self, *args, **options)
... ## Other stuff...
...
If you do that, everything should be OK.
HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65\'*9--56l7+-'])"
More information about the Python-list
mailing list