## Tcl8.6.0/Tk8.6.0 Documentation > Tk Commands, version 8.6.0 > ttk_style

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    ttk::style — Manipulate style database
  SYNOPSIS
  NOTES
  DEFINITIONS
  DESCRIPTION
    ttk::style configure style ?-option ?value option value...? ?
    ttk::style map style ?-option { statespec value... }?
    ttk::style lookup style -option ?state ?default??
    ttk::style layout style ?layoutSpec?
    ttk::style element create elementName type ?args...?
    ttk::style element names
    ttk::style element options element
    ttk::style theme create themeName ?-parent basedon? ?-settings script... ?
    ttk::style theme settings themeName script
    ttk::style theme names
    ttk::style theme use ?themeName?
  LAYOUTS
    -side side
    -sticky [nswe]
    -children { sublayout... }
  SEE ALSO
  KEYWORDS

### NAME

ttk::style — Manipulate style database

### SYNOPSIS

ttk::style option ?args?

### NOTES

See also the Tcl'2004 conference presentation, available at http://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 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 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 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 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(n)) 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(n)).

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 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 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 names
  Returns a list of all known themes.

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. Valid options are:

-side side
  Specifies which side of the cavity to place the element; one of left, right, top, or bottom. If omitted, the element occupies the entire cavity.

-sticky [nswe]
  Specifies where the element is placed inside its allocated parcel.

-children { sublayout... }
  Specifies a list of elements to place inside the element.

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, ttk::widget, photo, ttk_image

### KEYWORDS

style, theme, appearance
Copyright © 2004 Joe English