[Tkinter-discuss] Problem with 'cascade' and state=disabled
Henry S. Thompson
ht at inf.ed.ac.uk
Mon Feb 7 22:35:15 CET 2005
Jeff Epler <jepler at unpythonic.net> writes:
> Do you have a full program that demonstrates the problem?
> It's *likely* that str(w.entrycget(0, 'menu')) will return the menu's path
> as a string, in all cases.
Nope, that's precisely the bug.
> It's also possible that
> import Tkinter
> Tkinter.wantobjects = 0
> before creating any interpeter will get you a string instead.
Yes, that 'fixed' the problem. But of course it had the side-effect
of causing other uses of entryget to _stop_ returning numbers and go
back to their old behaviour of returning strings.
> Tcl started as a typeless language: everything is a string, but some
> strings can be interpreted as lists, as numbers, or as commands. In
> later versions, Tcl gained an "object" representation, with a C type
> called TclObj* which could hold just a string, an efficient
> representation of numbers or lists, a pointer directly to a command,
> With 'wantobjects = 1' (the default), a wrapper of a TclObject* can be
> returned from Tkinter calls, rather than a string. In this case, you're
> getting the command object that corresponds to the menu widget, rather
> than the string naming the menu widget, or the Python object that wraps
> that particular menu widget.
So that seems like a bug, and whatever magic (in _tkinter.c ?)
negotiates return types should surely never let a raw cmdObject
surface into Python. . .
I will _try_ to produce a small test case, it may be difficult. . .
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht at inf.ed.ac.uk
[mail really from me _always_ has this .sig -- mail without it is forged spam]
More information about the Tkinter-discuss