Provided by: tk8.6-doc_8.6.12-1build1_all bug

NAME

       ttk::style - Manipulate style database

SYNOPSIS

       ttk::style option ?args?
_________________________________________________________________________________________________

NOTES

       See      also      the      Tcl'2004     conference     presentation,     available     at
       https://tktable.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 overall 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
                     versions of Windows an element factory is registered to create 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 corresponding 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 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::style theme settings.

              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 arbitrary 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 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
                  }
              }

SEE ALSO

       ttk::intro(3tk), ttk::widget(3tk), photo(3tk), ttk_image(3tk)

KEYWORDS

       style, theme, appearance