Scale

class Scale(**properties: Any)

Superclasses: Range, Widget, InitiallyUnowned, Object

Implemented Interfaces: Accessible, AccessibleRange, Buildable, ConstraintTarget, Orientable

Constructors:

Scale(**properties)
new(orientation:Gtk.Orientation, adjustment:Gtk.Adjustment=None) -> Gtk.Widget
new_with_range(orientation:Gtk.Orientation, min:float, max:float, step:float) -> Gtk.Widget

Constructors

class Scale
classmethod new(orientation: Orientation, adjustment: Adjustment | None = None) Widget

Creates a new GtkScale.

Parameters:
  • orientation – the scale’s orientation.

  • adjustment – the Adjustment which sets the range of the scale, or None to create a new adjustment.

classmethod new_with_range(orientation: Orientation, min: float, max: float, step: float) Widget

Creates a new scale widget with a range from min to max.

The returns scale will have the given orientation and will let the user input a number between min and max (including min and max) with the increment step. step must be nonzero; it’s the distance the slider moves when using the arrow keys to adjust the scale value.

Note that the way in which the precision is derived works best if step is a power of ten. If the resulting precision is not suitable for your needs, use set_digits to correct it.

Parameters:
  • orientation – the scale’s orientation.

  • min – minimum value

  • max – maximum value

  • step – step increment (tick size) used with keyboard shortcuts

Methods

class Scale
add_mark(value: float, position: PositionType, markup: str | None = None) None

Adds a mark at value.

A mark is indicated visually by drawing a tick mark next to the scale, and GTK makes it easy for the user to position the scale exactly at the marks value.

If markup is not None, text is shown next to the tick mark.

To remove marks from a scale, use clear_marks.

Parameters:
  • value – the value at which the mark is placed, must be between the lower and upper limits of the scales’ adjustment

  • position – where to draw the mark. For a horizontal scale, TOP and LEFT are drawn above the scale, anything else below. For a vertical scale, LEFT and TOP are drawn to the left of the scale, anything else to the right.

  • markup – Text to be shown at the mark, using Pango markup

clear_marks() None

Removes any marks that have been added.

get_digits() int

Gets the number of decimal places that are displayed in the value.

get_draw_value() bool

Returns whether the current value is displayed as a string next to the slider.

get_has_origin() bool

Returns whether the scale has an origin.

get_layout() Layout | None

Gets the PangoLayout used to display the scale.

The returned object is owned by the scale so does not need to be freed by the caller.

get_layout_offsets() tuple[int, int]

Obtains the coordinates where the scale will draw the PangoLayout representing the text in the scale.

Remember when using the PangoLayout function you need to convert to and from pixels using :func:`~gi.repository.Pango.PIXELS` or PANGO_SCALE.

If the draw_value property is False, the return values are undefined.

get_value_pos() PositionType

Gets the position in which the current value is displayed.

set_digits(digits: int) None

Sets the number of decimal places that are displayed in the value.

Also causes the value of the adjustment to be rounded to this number of digits, so the retrieved value matches the displayed one, if draw_value is True when the value changes. If you want to enforce rounding the value when draw_value is False, you can set round_digits instead.

Note that rounding to a small number of digits can interfere with the smooth autoscrolling that is built into GtkScale. As an alternative, you can use set_format_value_func to format the displayed value yourself.

Parameters:

digits – the number of decimal places to display, e.g. use 1 to display 1.0, 2 to display 1.00, etc

set_draw_value(draw_value: bool) None

Specifies whether the current value is displayed as a string next to the slider.

Parameters:

draw_valueTrue to draw the value

set_format_value_func(func: Callable[[...], str] | None = None, *user_data: Any) None

func allows you to change how the scale value is displayed.

The given function will return an allocated string representing value. That string will then be used to display the scale’s value.

If None is passed as func, the value will be displayed on its own, rounded according to the value of the digits property.

Parameters:
  • func – function that formats the value

  • user_data – user data to pass to func

set_has_origin(has_origin: bool) None

Sets whether the scale has an origin.

If has_origin is set to True (the default), the scale will highlight the part of the trough between the origin (bottom or left side) and the current value.

Parameters:

has_originTrue if the scale has an origin

set_value_pos(pos: PositionType) None

Sets the position in which the current value is displayed.

Parameters:

pos – the position in which the current value is displayed

Properties

class Scale
props.digits: int

The number of decimal places that are displayed in the value.

props.draw_value: bool

Whether the current value is displayed as a string next to the slider.

props.has_origin: bool

Whether the scale has an origin.

props.value_pos: PositionType

The position in which the current value is displayed.

Virtual Methods

class Scale
do_get_layout_offsets() tuple[int, int]

Obtains the coordinates where the scale will draw the PangoLayout representing the text in the scale.

Remember when using the PangoLayout function you need to convert to and from pixels using :func:`~gi.repository.Pango.PIXELS` or PANGO_SCALE.

If the draw_value property is False, the return values are undefined.

Fields

class Scale
parent_instance