Next: canvas, Previous: listbox, Up: Widgets [Contents]

### 2.3 scale

scale \- Create and manipulate scale widgets

#### Synopsis

scale pathName ?options?

#### Standard Options

    activeForeground     borderWidth     font           orient
    background           cursor          foreground     relief

See options, for more information.

#### Arguments for Scale

`:command`

  Name=`"command" Class=`"`Command"`

  Specifies the prefix of a Tcl command to invoke whenever the value of the scale is changed interactively. The actual command consists of this option followed by a space and a number. The number indicates the new value of the scale.

`:from`

  Name=`"from" Class=`"`From"`

  Specifies the value corresponding to the left or top end of the scale. Must be an integer.

`:label`

  Name=`"label" Class=`"`Label"`

  Specifies a string to displayed as a label for the scale. For vertical scales the label is displayed just to the right of the top end of the scale. For horizontal scales the label is displayed just above the left end of the scale.

`:length`

  Name=`"length" Class=`"`Length"`

  Specifies the desired long dimension of the scale in screen units, that is in any of the forms acceptable to Tk_GetPixels. For vertical scales this is the scale’s height; for horizontal scales it is the scale’s width.

`:showvalue`

  Name=`"showValue" Class=`"`ShowValue"`

  Specifies a boolean value indicating whether or not the current value of the scale is to be displayed.

`:sliderforeground`

  Name=`"sliderForeground" Class=`"`sliderForeground"`

  Specifies the color to use for drawing the slider under normal conditions. When the mouse is in the slider window then the slider’s color is determined by the activeForeground option.

`:sliderlength`

  Name=`"sliderLength" Class=`"`SliderLength"`

  Specfies the size of the slider, measured in screen units along the slider’s long dimension. The value may be specified in any of the forms acceptable to Tk_GetPixels.

`:state`

  Name=`"state" Class=`"`State"`

  Specifies one of two states for the scale: normal or disabled. If the scale is disabled then the value may not be changed and the scale won’t activate when the mouse enters it.

`:tickinterval`

  Name=`"tickInterval" Class=`"`TickInterval"`

  Must be an integer value. Determines the spacing between numerical tick-marks displayed below or to the left of the slider. If specified as 0, then no tick-marks will be displayed.

`:to`

  Name=`"to" Class=`"`To"`

  Specifies the value corresponding to the right or bottom end of the scale. Must be an integer. This value may be either less than or greater than the from option.

`:width`

  Name=`"width" Class=`"`Width"`

  Specifies the desired narrow dimension of the scale in screen units (i.e. any of the forms acceptable to Tk_GetPixels). For vertical scales this is the scale’s width; for horizontal scales this is the scale’s height.

#### Description

The scale command creates a new window (given by the pathName argument) and makes it into a scale widget. Additional options, described above, may be specified on the command line or in the option database to configure aspects of the scale such as its colors, orientation, and relief. The scale command returns its pathName argument. At the time this command is invoked, there must not exist a window named pathName, but pathName’s parent must exist.

A scale is a widget that displays a rectangular region and a small slider. The rectangular region corresponds to a range of integer values (determined by the from and to options), and the position of the slider selects a particular integer value. The slider’s position (and hence the scale’s value) may be adjusted by clicking or dragging with the mouse as described in the BINDINGS section below. Whenever the scale’s value is changed, a Tcl command is invoked (using the command option) to notify other interested widgets of the change.

Three annotations may be displayed in a scale widget: a label appearing at the top-left of the widget (top-right for vertical scales), a number displayed just underneath the slider (just to the left of the slider for vertical scales), and a collection of numerical tick-marks just underneath the current value (just to the left of the current value for vertical scales). Each of these three annotations may be selectively enabled or disabled using the configuration options.

#### A Scale’s"Argumentsommand"

The scale command creates a new Tcl command whose name is pathName. This command may be used to invoke various operations on the widget. It has the following general form:

    pathName option ?arg arg ...?

Option and the args determine the exact behavior of the command. The following commands are possible for scale widgets:

pathName :configure ?option? ?value option value ...?

  Query or modify the configuration options of the widget. If no option is specified, returns a list describing all of the available options for pathName (see Tk_ConfigureInfo for information on the format of this list). If option is specified with no value, then the command returns a list describing the one named option (this list will be identical to the corresponding sublist of the value returned if no option is specified). If one or more option:value pairs are specified, then the command modifies the given widget option(s) to have the given value(s); in this case the command returns an empty string. Option may have any of the values accepted by the scale command.

pathName :get

  Returns a decimal string giving the current value of the scale.

pathName :set value

  This command is invoked to change the current value of the scale, and hence the position at which the slider is displayed. Value gives the new value for the scale.

#### Bindings

When a new scale is created, it is given the following initial behavior by default:

<Enter>

  Change the slider display to use activeForeground instead of sliderForeground.

<Leave>

  Reset the slider display to use sliderForeground instead of activeForeground.

<ButtonPress-1>

  Change the slider display so that the slider appears sunken rather than raised. Move the slider (and adjust the scale’s value) to correspond to the current mouse position.

<Button1-Motion>

  Move the slider (and adjust the scale’s value) to correspond to the current mouse position.

<ButtonRelease-1>

  Reset the slider display so that the slider appears raised again.

#### Keywords

scale, widget

Next: canvas, Previous: listbox, Up: Widgets [Contents]