> 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