> Things are a little more complicated though; if you only pass the page name 
> to pageconfigure, without any option,
> you want all options with their current values to be returned, if you pass 
> one option without
> value the current value should be returned, as in Tkinter.Widget.configure().

Ah, of course.  Tk configure methods aren't just setters, they're also two 
kinds of getter!  A silly oversight on my behalf.

> The Tix way to achieve this seems to be (taken from 
> Tix.PanedWindow.paneconfigure()):
> 
>     def pageconfigure(self, page, cnf={}, **kw):
>         if cnf is None:
>             return _lst2dict(
>                 self.tk.split(
>                 self.tk.call(self._w, 'pageconfigure', page._name)))
>         self.tk.call(self._w, 'pageconfigure', page._name, 
> *self._options(cnf, kw))
> 
> which appears to be broken, though; when I pass only a pagename to it I get 
> None as return value,
> I need to call nb.pageconfigure(pagename, None) to get something returned, 
> which is at least
> unintuitive, and passing an option as in nb.pageconfigure(pagename, 'label') 
> causes an error.
> 
> A better way to implement it might be the typical Tkinter way:
> 
>     def pageconfigure(self, page, cnf={}, **kw):
>         return self._configure(('pageconfigure', page._name), cnf, kw)
> 
> This allows at least partially to query current values, 
> nb.pageconfigure(pagename, 'label')
> returns a tuple ('label', '', '', '', 'foobar'), nb.pageconfigure(pagename) 
> still returns None if
> used without None as second argument.

Thank you very much for taking the time to explain / explore these variations.  
It feels like there's certainly some scope for a bit of polish in the Tix 
implementation, with NoteBook.pageconfigure not exposed and 
PanedWindow.paneconfigure broken!  Perhaps it is a low priority because, as I 
understand, with upcomming versions of Tk, and something called Ttk, Tix may 
become somewhat obselete anyway.

Thanks again for all your input.

Luke
_______________________________________________
Tkinter-discuss mailing list
Tkinter-discuss@python.org
http://mail.python.org/mailman/listinfo/tkinter-discuss

Reply via email to