[ Next: Packer | Previous: Relationship | Contents ]

Setting Options

Options control things like the color and border width of a widget. Options can be set in three ways:

At object creation time, using keyword arguments:
fred = Button(self, fg = "red", bg = "blue")
After object creation, treating the option name like a dictionary index:
fred["fg"] = "red"
fred["bg"] = "blue"
Use the config() method to update multiple attrs subesequent to object creation:
fred.config(fg = "red", bg = "blue")
To find out which options pertain to a given widget, consult the widget reference at the back of this document, starting on XXX page 21XXX. Some options expect certain types; see XXX pages 16 and 17 XXX for details. For a complete explanation of a given option and its behavior, see the Tk man pages for the widget in question.

Note that the man pages list "STANDARD OPTIONS" and "WIDGET SPECIFIC OPTIONS" for each widget. The former is a list of options that are common to many widgets, the latter are the options that are ideosyncratic to that particular widget. The Standard Options are documented on the "options" man page. No distinction between standard and widget-specific options is made in this document. Some options don't apply to some kinds of widgets. Whether a given widget responds to a particular option depends on the class of the widget; buttons have a "command" option, labels do not.

The options supported by a given widget are listed in that widget's man page, or can be queried at runtime by calling the config() method with arguments, or by calling the keys() method on that widget. The return value of these calls is a dictionary whose key is the name of the option (e.g. relief) and whose values are 5 tuples.

(Some options, like bg are synonyms for common options with hard-to-type names (bg is shorthand for "background"). Passing the config() method the name of a shorthand option will return a 2-tuple, not 5-tuple. The 2-tuple passed back will contain the name of the synonym "real" option. (bg, background))

 
Element #	Value				  Example
    0		option name			  "relief"
    1		option name for database lookup*  "relief"
    2		option class for database lookup  "Relief"
    3		default value			  "raised"
    4		current value			  "groove
(*Database lookups happen in the internal "options database" or the Xresources database. See John Ousterhout's book, page 253 for details.)

Example:

>>> print fred.config() {"relief" : ("relief", "relief", "Relief", "raised", "groove")} Of course, the dictionary printed will include all the options available and their values. This is meant only as an example.