Help for Toplevel
Eric Brunel
eric.brunel at nospam-pragmadev.com
Thu Apr 2 03:38:50 EDT 2009
Muddy Coder wrote:
> Hi Folks,
>
> I have a problem of handling Toplevel window. Basically, I wrote a
> listbox viewer with scrollbars, and saved in file listbo.py. Then in
> my main GUI window, with menu, I need to launch the listbox viewer, in
> a new window. Obviously, a Toplevel window is needed. But, I failed at
> passing parameters over to Toplevel window. Please take a look at my
> code:
>
> Listbox viewer:
> class ScrolledList(Frame):
> def __init__(self, options, parent=None):
So the first parameter to the constructor is the scrolled list options, and
the second one is its parent widget, right?
> Frame.__init__(self, parent)
> self.pack(expand=YES, fill=BOTH)
> self.makeWidgets(options)
>
> In my main GUI:
> from XXX import ScrolledList
> class Foo:
> def __init__(self):
> ........
> def call_listbox(self, params):
> new = Toplevel()
> alist = ['foor','bar']
> ScrolledList(new,alist)
So why are you passing the parent widget as first parameter and something else
as second...?
On a more general level, unless really needed, I try to avoid creating
subclasses of exisiting classes with a constructor with completely different
parameters than the super-class's one. I'm usually doing something like:
class ScrolledList(Frame):
def __init__(self, *args, **options):
Frame.__init__(self, *args, **options)
The only thing I (rarely...) allow myself to do is to pass custom options and
getting/removing them with options.pop('my_option') before calling the
super-class's constructor. Otherwise, I just add specific methods; it's far
less confusing.
HTH
- Eric -
More information about the Python-list
mailing list