ttk::style - Manipulate style database
See also the Tcl'2004 conference presentation, available at
https://tktable.sourceforge.net/tile/tile-tcl2004.pdf
Each widget is assigned a style, which specifies the set of
elements making up the widget and how they are arranged, along with dynamic
and default settings for element options. By default, the style name is the
same as the widget's class; this may be overridden by the -style
option.
A theme is a collection of elements and styles which
controls the overall look and feel of an application. The “.”
style is the theme root style on which derived styles are based.
The ttk::style command takes the following arguments:
- ttk::style
configure style ?-option ?value option value...?
?
- Sets the default value of the specified option(s) in style. If
style does not exist, it is created. If only style and
-option are specified, get the default value for option
-option of style style. If only style is specified,
get the default value for all options of style style.
- ttk::style
element args
- ttk::style
layout style ?layoutSpec?
- Define the widget layout for style style. See LAYOUTS below
for the format of layoutSpec. If layoutSpec is omitted,
return the layout specification for style style.
- ttk::style
lookup style -option ?state ?default??
- Returns the value specified for -option in style style in
state state, using the standard lookup rules for element options.
state is a list of state names; if omitted, it defaults to all bits
off (the “normal” state). If the default argument is
present, it is used as a fallback value in case no specification for
-option is found. If style does not exist, it is
created.
- ttk::style
map style ?-option { statespec value...
}?
- Sets dynamic (state dependent) values of the specified option(s) in
style. Each statespec / value pair is examined in order; the
value corresponding to the first matching statespec is used. If
style does not exist, it is created. If only style and
-option are specified, get the dynamic values for option
-option of style style. If only style is specified,
get the dynamic values for all options of style style.
- ttk::style
theme args
A layout specifies a list of elements, each followed by one
or more options specifying how to arrange the element. The layout mechanism
uses a simplified version of the pack geometry manager: given an
initial cavity, each element is allocated a parcel. Then the parcel actually
used by the element is adjusted within the allocated parcel. Valid options
are:
- -children {
sublayout... }
- Specifies a list of elements to place inside the element.
- -expand
boolean
- Specifies whether the allocated parcel is the entire cavity. If so,
simultaneous specification of -side is ignored. Defaults to 0.
- -side
side
- Specifies which side of the cavity to place the element; one of
left, right, top, or bottom. For instance,
-side top allocates the parcel along the top of the cavity having
width and height respectively the width of the cavity and the height of
the element. If omitted, the allocated parcel is the entire cavity (same
effect as -expand 1).
- -sticky
[nswe]
- Specifies the actual parcel position and size inside the allocated parcel.
If specified as an empty string then the actual parcel is centered in the
allocated parcel. Default is nswe.
For example:
ttk::style layout Horizontal.TScrollbar {
Scrollbar.trough -children {
Scrollbar.leftarrow -side left
Scrollbar.rightarrow -side right
Horizontal.Scrollbar.thumb -side left -sticky ew
}
}
The “.” theme root style can be configured like any
other style, providing defaults for its derived styles. In addition to the
usual options, “.” styling options configurable with
ttk::style are:
-insertofftime amount
Specifies a non-negative integer value indicating the
number of milliseconds the insertion cursor should remain “off”
in each blink cycle. If this option is zero then the cursor does not blink: it
is on all the time. Defaults to 300 ms, unless overriden with a
RESOURCE_MANAGER property or .Xdefaults file.
-insertontime amount
Specifies a non-negative integer value indicating the
number of milliseconds the insertion cursor should remain “on”
in each blink cycle. Defaults to 600 ms, unless overriden with a
RESOURCE_MANAGER property or .Xdefaults file.