ttk::style(3tk) Tk Themed Widget ttk::style(3tk)
______________________________________________________________________________
NAME
ttk::style - Manipulate style database
SYNOPSIS
ttk::style option ?args?
______________________________________________________________________________
NOTES
See also the Tcl'2004 conference presentation, available at https://tk-
table.sourceforge.net/tile/tile-tcl2004.pdf
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 over-
all look and feel of an application.
DESCRIPTION
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.
ttk::style element args
ttk::style element create elementName type ?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 ver-
sions of Windows an element factory is registered to cre-
ate Windows theme elements (see ttk_vsapi(3tk)).
ttk::style element names
Returns the list of elements defined in the current
theme.
ttk::style element options element
Returns the list of element's options.
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.
ttk::style map style ?-option { statespec value... }?
Sets dynamic values of the specified option(s) in style. Each
statespec / value pair is examined in order; the value corre-
sponding to the first matching statespec is used.
ttk::style theme args
ttk::style theme create themeName ?-parent basedon? ?-settings
script... ?
Creates a new theme. It is an error if themeName already
exists. If -parent is specified, the new theme will in-
herit 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::style theme set-
tings.
ttk::style theme names
Returns a list of all known themes.
ttk::style theme settings themeName script
Temporarily sets the current theme to themeName, evaluate
script, then restore the previous theme. Typically
script simply defines styles and elements, though arbi-
trary Tcl code may appear.
ttk::style theme use ?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.
LAYOUTS
A layout specifies a list of elements, each followed by one or more op-
tions 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 op-
tions 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 ele-
ment. 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 allo-
cated 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
}
}
SEE ALSO
ttk::intro(3tk), ttk::widget(3tk), photo(3tk), ttk_image(3tk)
KEYWORDS
style, theme, appearance
Tk 8.5 ttk::style(3tk)
Generated by dwww version 1.14 on Sat Jun 13 11:21:21 CEST 2026.