ScaleButton

class ScaleButton(**properties: Any)

Superclasses: Widget, InitiallyUnowned, Object

Subclasses: VolumeButton

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

GtkScaleButton provides a button which pops up a scale widget.

This kind of widget is commonly used for volume controls in multimedia applications, and GTK provides a VolumeButton subclass that is tailored for this use case.

CSS nodes

scalebutton.scale
╰── button.toggle
    ╰── <icon>

GtkScaleButton has a single CSS node with name scalebutton and .scale style class, and contains a button node with a .toggle style class.

Constructors

class ScaleButton
classmethod new(min: float, max: float, step: float, icons: Sequence[str] | None = None) Widget

Creates a GtkScaleButton.

The new scale button has a range between min and max, with a stepping of step.

Parameters:
  • min – the minimum value of the scale (usually 0)

  • max – the maximum value of the scale (usually 100)

  • step – the stepping of value when a scroll-wheel event, or up/down arrow event occurs (usually 2)

  • icons – a None-terminated array of icon names, or None if you want to set the list later with set_icons()

Methods

class ScaleButton
get_active() bool

Queries a GtkScaleButton and returns its current state.

Returns True if the scale button is pressed in and False if it is raised.

Added in version 4.10.

get_adjustment() Adjustment

Gets the GtkAdjustment associated with the GtkScaleButton’s scale.

See get_adjustment for details.

get_has_frame() bool

Returns whether the button has a frame.

Added in version 4.14.

get_minus_button() Button

Retrieves the minus button of the GtkScaleButton.

get_plus_button() Button

Retrieves the plus button of the GtkScaleButton.

get_popup() Widget

Retrieves the popup of the GtkScaleButton.

get_value() float

Gets the current value of the scale button.

set_adjustment(adjustment: Adjustment) None

Sets the GtkAdjustment to be used as a model for the GtkScaleButton’s scale.

See set_adjustment for details.

Parameters:

adjustment – a GtkAdjustment

set_has_frame(has_frame: bool) None

Sets the style of the button.

Added in version 4.14.

Parameters:

has_frame – whether the button should have a visible frame

set_icons(icons: Sequence[str]) None

Sets the icons to be used by the scale button.

Parameters:

icons – a None-terminated array of icon names

set_value(value: float) None

Sets the current value of the scale.

If the value is outside the minimum or maximum range values, it will be clamped to fit inside them.

The scale button emits the value_changed signal if the value changes.

Parameters:

value – new value of the scale button

Properties

class ScaleButton
props.active: bool

If the scale button should be pressed in.

Added in version 4.10.

props.adjustment: Adjustment

The GtkAdjustment that is used as the model.

props.has_frame: bool

If the scale button has a frame.

Added in version 4.14.

props.icons: Sequence[str]

The names of the icons to be used by the scale button.

The first item in the array will be used in the button when the current value is the lowest value, the second item for the highest value. All the subsequent icons will be used for all the other values, spread evenly over the range of values.

If there’s only one icon name in the icons array, it will be used for all the values. If only two icon names are in the icons array, the first one will be used for the bottom 50% of the scale, and the second one for the top 50%.

It is recommended to use at least 3 icons so that the GtkScaleButton reflects the current value of the scale better for the users.

props.value: float

The value of the scale.

Signals

class ScaleButton.signals
popdown() None

Emitted to dismiss the popup.

This is a keybinding signal.

The default binding for this signal is Escape.

popup() None

Emitted to popup the scale widget.

This is a keybinding signal.

The default bindings for this signal are Space, Enter and Return.

value_changed(value: float) None

Emitted when the value field has changed.

Parameters:

value – the new value

Virtual Methods

class ScaleButton
do_value_changed(value: float) None
Parameters:

value

Fields

class ScaleButton
parent_instance