ttk::style - Manipulate style database
Contents
Definitions
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.
Description
The ttk::style command takes the following arguments:
ttk::styleconfigurestyle ?-option ?valueoptionvalue...? ?
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::styleelementargsttk::styleelementcreateelementNametype ?args...?
Creates a new element in the current theme of type type. The only cross-platform built-in
element type is image (see ttk_image(3tk)) but themes may define other element types (see
Ttk_RegisterElementFactory). On suitable versions of Windows an element factory is
registered to create Windows theme elements (see ttk_vsapi(3tk)).
ttk::styleelementnames
Returns the list of elements defined in the current theme.
ttk::styleelementoptionselement
Returns the list of element's options.
ttk::stylelayoutstyle ?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::stylelookupstyle-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::stylemapstyle ?-option{statespecvalue...}?
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::stylethemeargsttk::stylethemecreatethemeName ?-parentbasedon? ?-settingsscript... ?
Creates a new theme. It is an error if themeName already exists. If -parent is specified,
the new theme will inherit styles, elements, and layouts from the parent theme basedon. If
-settings is present, script is evaluated in the context of the new theme as per ttk::stylethemesettings.
ttk::stylethemenames
Returns a list of all known themes.
ttk::stylethemesettingsthemeNamescript
Temporarily sets the current theme to themeName, evaluate script, then restore the previous
theme. Typically script simply defines styles and elements, though arbitrary Tcl code may
appear.
ttk::stylethemestyles ?themeName?
Returns a list of all styles in themeName. If themeName is omitted, the current theme is
used.
ttk::stylethemeuse ?themeName?
Without an argument the result is the name of the current theme. Otherwise this command
sets the current theme to themeName, and refreshes all widgets.
Keywords
style, theme, appearance
Tk 8.5 ttk::style(3tk)
Layouts
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.
-expandboolean
Specifies whether the allocated parcel is the entire cavity. If so, simultaneous specification of
-side is ignored. Defaults to 0.
-sideside
Specifies which side of the cavity to place the element; one of left, right, top, or bottom. For
instance, -sidetop 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
}
}
Name
ttk::style - Manipulate style database
Notes
See also the Tcl'2004 conference presentation, available at https://tktable.sourceforge.net/tile/tile-
tcl2004.pdf
Root Style
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:
-insertofftimeamount
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.
-insertontimeamount
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.
See Also
ttk::intro(3tk), ttk::widget(3tk), photo(3tk), ttk_image(3tk)
Synopsis
ttk::styleoption ?args? ________________________________________________________________________________________________________________
