ttk::widget - Standard options and commands supported by Tk themed
widgets
This manual describes common widget options and commands.
The following options are supported by all Tk themed widgets:
Command-Line Name: -class
Database Name: undefined
Database Class: undefined
- Specifies the window class. The class is used when querying the option
database for the window's other options, to determine the default bindtags
for the window, and to select the widget's default layout and style. This
is a read-only option: it may only be specified when the window is
created, and may not be changed with the configure widget
command.
Command-Line Name: -cursor
Database Name: cursor
Database Class: Cursor
- Specifies the mouse cursor to be used for the widget. See
Tk_GetCursor and cursors(3tk) in the Tk reference manual for
the legal values. If set to the empty string (the default), the cursor is
inherited from the parent widget.
Command-Line Name: -takefocus
Database Name: takeFocus
Database Class: TakeFocus
- Determines whether the window accepts the focus during keyboard traversal.
Either 0, 1, a command prefix (to which the widget path is
appended, and which should return 0 or 1), or the empty
string. See options(3tk) in the Tk reference manual for the full
description.
Command-Line Name: -style
Database Name: style
Database Class: Style
- May be used to specify a custom widget style.
The following options are supported by widgets that are
controllable by a scrollbar. See scrollbar(3tk) for more
information
Command-Line Name: -xscrollcommand
Database Name: xScrollCommand
Database Class: ScrollCommand
- A command prefix, used to communicate with horizontal scrollbars.
When the view in the widget's window changes, the widget
will generate a Tcl command by concatenating the scroll command and two
numbers. Each of the numbers is a fraction between 0 and 1 indicating a
position in the document; 0 indicates the beginning, and 1 indicates the end.
The first fraction indicates the first information in the widget that is
visible in the window, and the second fraction indicates the information just
after the last portion that is visible.
Typically the -xscrollcommand option consists of the path
name of a scrollbar widget followed by “set”, e.g.
“.x.scrollbar set”. This will cause the scrollbar to be
updated whenever the view in the window changes.
If this option is set to the empty string (the default), then no
command will be executed.
Command-Line Name: -yscrollcommand
Database Name: yScrollCommand
Database Class: ScrollCommand
- A command prefix, used to communicate with vertical scrollbars. See the
description of -xscrollcommand above for details.
The following options are supported by labels, buttons, and other
button-like widgets:
Command-Line Name: -anchor
Database Name: anchor
Database Class: Anchor
- Specifies how the information in the widget is positioned relative to the
inner margins. Legal values are n, ne, e, se,
s, sw, w, nw, and center. See also
-justify (for widgets supporting this option).
Command-Line Name: -compound
Database Name: compound
Database Class: Compound
- Specifies how to display the image relative to the text, in the case both
-text and -image are present. If set to the empty string
(the default), the rules described in the "Elements" section of
ttk::intro(3tk) explain which value is actually used. The other
valid values are:
- text
- Display text only.
- image
- Display image only.
- center
- Display text centered on top of image.
- top
- bottom
- left
- right
- Display image above, below, left of, or right of the text,
respectively.
- none
- Display the image if present, otherwise the text.
Command-Line Name: -font
Database Name: font
Database Class: Font
- Font to use for the text displayed by the widget.
Command-Line Name: -foreground
Database Name: textColor
Database Class: TextColor
- The widget's foreground color. If unspecified, the theme default is
used.
Command-Line Name: -image
Database Name: image
Database Class: Image
- Specifies an image to display. This is a list of 1 or more elements. The
first element is the default image name. The rest of the list is a
sequence of statespec / value pairs as per style map,
specifying different images to use when the widget is in a particular
state or combination of states. All images in the list should have the
same size.
Command-Line Name: -justify
Database Name: justify
Database Class: Justify
- If there are multiple lines of text, specifies how the lines are laid out
relative to one another. One of left, center, or
right. See also -anchor (for widgets supporting this
option).
Command-Line Name: -padding
Database Name: padding
Database Class: Padding
- Specifies the internal padding for the widget. The padding is a list of up
to four length specifications left top right bottom. If fewer than
four elements are specified, bottom defaults to top,
right defaults to left, and top defaults to
left. In other words, a list of three numbers specify the left,
vertical, and right padding; a list of two numbers specify the horizontal
and the vertical padding; a single number specifies the same padding all
the way around the widget.
Command-Line Name: -text
Database Name: text
Database Class: Text
- Specifies a text string to be displayed inside the widget (unless
overridden by -textvariable for the widgets supporting this
option).
Command-Line Name: -textvariable
Database Name: textVariable
Database Class: Variable
- Specifies the name of a global variable whose value will be used in place
of the -text resource.
Command-Line Name: -underline
Database Name: underline
Database Class: Underline
- If set, specifies the integer index (0-based) of a character to underline
in the text string. end corresponds to the last character,
end-1 to the before last character, and so on. The underlined
character is used for mnemonic activation.
Command-Line Name: -width
Database Name: width
Database Class: Width
- If greater than zero, specifies how much space, in character widths, to
allocate for the text label. If less than zero, specifies a minimum width.
If zero or unspecified, the natural width of the text label is used. Note
that some themes may specify a non-zero -width in the style.
Command-Line Name: -wraplength
Database Name: wrapLength
Database Class: WrapLength
- Specifies the maximum line length. The value may have any of the forms
acceptable to Tk_GetPixels. If this option is less than or equal to
zero, then automatic wrapping is not performed; otherwise the text is
split into lines such that no line is longer than the specified
value.
The following options are supported by entry, spinbox and
combobox:
Command-Line Name: -placeholder
Database Name: placeHolder
Database Class: PlaceHolder
- Specifies a help text string to display if no text is otherwise displayed,
that is when the widget is empty. The placeholder text is displayed using
the values of the -font, -justify and
-placeholderforeground options.
Command-Line Name: -placeholderforeground
Database Name: placeHolderForeground
Database Class: PlaceHolderForeground
- Specifies the foreground color of the placeholder text.
This option is only available for themed widgets that have
“corresponding” traditional Tk widgets.
Command-Line Name: -state
Database Name: state
Database Class: State
- May be set to normal or disabled to control the
disabled state bit. This is a write-only option: setting it changes
the widget state, but the state widget command does not affect the
-state option.
- pathName
cget option
- Returns the current value of the configuration option given by
option.
- pathName
configure ?option? ?value option value
...?
- Query or modify the configuration options of the widget. If one or more
option-value pairs are specified, then the command modifies the
given widget option(s) to have the given value(s); in this case the
command returns an empty string. If option is specified with no
value, then the command returns a list describing the named option:
the elements of the list are the option name, database name, database
class, default value, and current value. If no option is specified,
returns a list describing all of the available options for
pathName.
- pathName
identify element x y
- Returns the name of the element under the point given by x and
y, or an empty string if the point does not lie within any element.
x and y are pixel coordinates relative to the widget. Some
widgets accept other identify subcommands described in these
widgets documentation.
- pathName
instate statespec ?script?
- Test the widget's state. If script is not specified, returns 1 if
the widget state matches statespec and 0 otherwise. If
script is specified, equivalent to
if {[pathName instate stateSpec]} script
- pathName
state ?stateSpec?
- Modify or inquire widget state. If stateSpec is present, sets the
widget state: for each flag in stateSpec, sets the corresponding
flag or clears it if prefixed by an exclamation point.
Returns a new state spec indicating which flags were
changed:
set changes [pathName state spec]
pathName state $changes
will restore
pathName to the original state. If
stateSpec is not
specified, returns a list of the currently-enabled state flags.
- pathName
style
- Return the style used by the widget.
- pathName
xview args
- This command is used to query and change the horizontal position of the
content in the widget's window. It can take any of the following
forms:
- pathName
xview
- Returns a list containing two elements. Each element is a real fraction
between 0 and 1; together they describe the horizontal span that is
visible in the window. For example, if the first element is .2 and the
second element is .6, 20% of the widget's content is off-screen to the
left, the middle 40% is visible in the window, and 40% of the content is
off-screen to the right. These are the same values passed to scrollbars
via the -xscrollcommand option.
- pathName
xview index
- Adjusts the view in the window so that the content given by index
is displayed at the left edge of the window.
- pathName
xview moveto fraction
- Adjusts the view in the window so that the character fraction of
the way through the content appears at the left edge of the window.
Fraction must be a fraction between 0 and 1.
- pathName
xview scroll number what
- This command shifts the view in the window left or right according to
number and what. Number must be an integer or a
float, but if it is a float then it is converted to an integer, rounded
away from 0. What must be either pages or units. If
what is pages then the view adjusts by number
screenfuls. If number is negative then characters farther to the
left become visible; if it is positive then characters farther to the
right become visible. If what is units, the view adjusts
left or right by number average-width characters on the
display.
- pathName
yview args
- This command is used to query and change the vertical position of the
content in the widget's window. It can take any of the following
forms:
- pathName
yview
- Returns a list containing two elements. Each element is a real fraction
between 0 and 1; together they describe the vertical span that is visible
in the window. For example, if the first element is .2 and the second
element is .6, 20% of the widget's content is off-screen to the top, the
middle 40% is visible in the window, and 40% of the content is off-screen
to the bottom. These are the same values passed to scrollbars via the
-yscrollcommand option.
- pathName
yview index
- Adjusts the view in the window so that the content given by index
is displayed at the top edge of the window.
- pathName
yview moveto fraction
- Adjusts the view in the window so that the item fraction of the way
through the content appears at the top edge of the window. Fraction
must be a fraction between 0 and 1.
- pathName
yview scroll number what
- This command shifts the view in the window up or down according to
number and what. Number must be an integer or a
float, but if it is a float then it is converted to an integer, rounded
away from 0. What must be either pages or units. If
what is pages then the view adjusts by number
screenfuls. If number is negative then items farther to the top
become visible; if it is positive then items farther to the bottom become
visible. If what is units, the view adjusts up or down by
number average-width characters on the display.
The widget state is a bitmap of independent state flags. Widget
state flags include:
- active
- The mouse cursor is over the widget and pressing a mouse button will cause
some action to occur. (aka “prelight” (Gnome),
“hot” (Windows), “hover”).
- disabled
- Widget is disabled under program control (aka “unavailable”,
“inactive”).
- focus
- Widget has keyboard focus.
- pressed
- Widget is being pressed (aka “armed” in Motif).
- selected
- “On”, “true”, or “current” for
things like checkbuttons and radiobuttons.
- background
- Windows and the Mac have a notion of an “active” or
foreground window. The background state is set for widgets in a
background window, and cleared for those in the foreground window.
- readonly
- Widget should not allow user modification.
- alternate
- A widget-specific alternate display format. For example, used for
checkbuttons and radiobuttons in the “tristate” or
“mixed” state, and for buttons with -default
active.
- invalid
- The widget's value is invalid. (Potential uses: scale widget value out of
bounds, entry widget value failed validation.)
- hover
- The mouse cursor is within the widget. This is similar to the
active state; it is used in some themes for widgets that provide
distinct visual feedback for the active widget in addition to the active
element within the widget.
- user1-user6
- Freely usable for other purposes
A state specification or stateSpec is a list of
state names, optionally prefixed with an exclamation point (!) indicating
that the bit is off.
set b [ttk::button .b]
# Disable the widget:
$b state disabled
# Invoke the widget only if it is currently pressed and enabled:
$b instate {pressed !disabled} { .b invoke }
# Reenable widget:
$b state !disabled