Scale widgets are used to allow the user
to visually select and manipulate a value within a specific range. You might
want to use a scale widget, for example, to adjust the magnification level
on a zoomed preview of a picture, or to control the brightness of a color,
or to specify the number of minutes of inactivity before a screensaver takes
over the screen.
As with scrollbars, there are separate widget types for horizontal and vertical scale widgets. (Most programmers seem to favour horizontal scale widgets.) Since they work essentially the same way, there's no need to treat them separately here. The following methods create vertical and horizontal scale widgets, respectively:
vscale = gtk.VScale(adjustment=None) hscale = gtk.HScale(adjustment=None)
The adjustment argument can either be
an adjustment which has already been created with
gtk.Adjustment() , or nothing, in which case, an
anonymous Adjustment is created with all of its
values set to 0.0 (which isn't very useful in this case). In order to avoid
confusing yourself, you probably want to create your adjustment with a
page_size of 0.0 so that its
upper value actually corresponds to the highest value
the user can select. (If you're already thoroughly confused, read Chapter 7, Adjustments again for an explanation of what exactly
adjustments do and how to create and manipulate them.)
Scale widgets can display their current value as a number beside the trough. The default behaviour is to show the value, but you can change this with this method:
scale.set_draw_value(draw_value)
As you might have guessed, draw_value
is either TRUE or FALSE, with
predictable consequences for either one.
The value displayed by a scale widget is rounded to one
decimal point by default, as is the value field in its
Adjustment. You can change this with:
scale.set_digits(digits)
where digits is the number of decimal
places you want. You can set digits to anything you like, but no more than
13 decimal places will actually be drawn on screen.
Finally, the value can be drawn in different positions relative to the trough:
scale.set_value_pos(pos)
The argument pos can take one of the
following values:
POS_LEFT POS_RIGHT POS_TOP POS_BOTTOM
If you position the value on the "side" of the trough (e.g., on the top or bottom of a horizontal scale widget), then it will follow the slider up and down the trough.