Struct gtk::SpinButton 
source · [−]#[repr(transparent)]pub struct SpinButton { /* private fields */ }Expand description
A SpinButton is an ideal way to allow the user to set the value of
some attribute. Rather than having to directly type a number into a
Entry, GtkSpinButton allows the user to click on one of two arrows
to increment or decrement the displayed value. A value can still be
typed in, with the bonus that it can be checked to ensure it is in a
given range.
The main properties of a GtkSpinButton are through an adjustment.
See the Adjustment section for more details about an adjustment’s
properties. Note that GtkSpinButton will by default make its entry
large enough to accomodate the lower and upper bounds of the adjustment,
which can lead to surprising results. Best practice is to set both
the property::Entry::width-chars and property::Entry::max-width-chars poperties
to the desired number of characters to display in the entry.
CSS nodes
⚠️ The following code is in plain ⚠️
spinbutton.horizontal
├── undershoot.left
├── undershoot.right
├── entry
│   ╰── ...
├── button.down
╰── button.up⚠️ The following code is in plain ⚠️
spinbutton.vertical
├── undershoot.left
├── undershoot.right
├── button.up
├── entry
│   ╰── ...
╰── button.downGtkSpinButtons main CSS node has the name spinbutton. It creates subnodes for the entry and the two buttons, with these names. The button nodes have the style classes .up and .down. The GtkEntry subnodes (if present) are put below the entry node. The orientation of the spin button is reflected in the .vertical or .horizontal style class on the main node.
Using a GtkSpinButton to get an integer
⚠️ The following code is in C ⚠️
// Provides a function to retrieve an integer value from a GtkSpinButton
// and creates a spin button to model percentage values.
gint
grab_int_value (GtkSpinButton *button,
                gpointer       user_data)
{
  return gtk_spin_button_get_value_as_int (button);
}
void
create_integer_spin_button (void)
{
  GtkWidget *window, *button;
  GtkAdjustment *adjustment;
  adjustment = gtk_adjustment_new (50.0, 0.0, 100.0, 1.0, 5.0, 0.0);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_container_set_border_width (GTK_CONTAINER (window), 5);
  // creates the spinbutton, with no decimal places
  button = gtk_spin_button_new (adjustment, 1.0, 0);
  gtk_container_add (GTK_CONTAINER (window), button);
  gtk_widget_show_all (window);
}Using a GtkSpinButton to get a floating point value
⚠️ The following code is in C ⚠️
// Provides a function to retrieve a floating point value from a
// GtkSpinButton, and creates a high precision spin button.
gfloat
grab_float_value (GtkSpinButton *button,
                  gpointer       user_data)
{
  return gtk_spin_button_get_value (button);
}
void
create_floating_spin_button (void)
{
  GtkWidget *window, *button;
  GtkAdjustment *adjustment;
  adjustment = gtk_adjustment_new (2.500, 0.0, 5.0, 0.001, 0.1, 0.0);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_container_set_border_width (GTK_CONTAINER (window), 5);
  // creates the spinbutton, with three decimal places
  button = gtk_spin_button_new (adjustment, 0.001, 3);
  gtk_container_add (GTK_CONTAINER (window), button);
  gtk_widget_show_all (window);
}Implements
SpinButtonExt, EntryExt, WidgetExt, glib::ObjectExt, BuildableExt, CellEditableExt, EditableExt, OrientableExt, SpinButtonSignals, EntryExtManual, WidgetExtManual, BuildableExtManual, EditableSignals
Implementations
sourceimpl SpinButton
 
impl SpinButton
pub const NONE: Option<&'static SpinButton> = None
sourcepub fn new(
    adjustment: Option<&impl IsA<Adjustment>>,
    climb_rate: f64,
    digits: u32
) -> SpinButton
 
pub fn new(
    adjustment: Option<&impl IsA<Adjustment>>,
    climb_rate: f64,
    digits: u32
) -> SpinButton
Creates a new SpinButton.
adjustment
the Adjustment object that this spin
button should use, or None
climb_rate
specifies by how much the rate of change in the value will accelerate if you continue to hold down an up/down button or arrow key
digits
the number of decimal places to display
Returns
The new spin button as a Widget
sourcepub fn with_range(min: f64, max: f64, step: f64) -> SpinButton
 
pub fn with_range(min: f64, max: f64, step: f64) -> SpinButton
This is a convenience constructor that allows creation of a numeric
SpinButton without manually creating an adjustment. The value is
initially set to the minimum value and a page increment of 10 * step
is the default. The precision of the spin button is equivalent to the
precision of step.
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 SpinButtonExt::set_digits() to correct it.
min
Minimum allowable value
max
Maximum allowable value
step
Increment added or subtracted by spinning the widget
Returns
The new spin button as a Widget
sourcepub fn builder() -> SpinButtonBuilder
 
pub fn builder() -> SpinButtonBuilder
Creates a new builder-pattern struct instance to construct SpinButton objects.
This method returns an instance of SpinButtonBuilder which can be used to create SpinButton objects.
Trait Implementations
sourceimpl Clone for SpinButton
 
impl Clone for SpinButton
sourceimpl Debug for SpinButton
 
impl Debug for SpinButton
sourceimpl Default for SpinButton
 
impl Default for SpinButton
sourceimpl Display for SpinButton
 
impl Display for SpinButton
sourceimpl Hash for SpinButton
 
impl Hash for SpinButton
sourceimpl Ord for SpinButton
 
impl Ord for SpinButton
1.21.0 · sourceconst fn max(self, other: Self) -> Self
 
const fn max(self, other: Self) -> Self
1.21.0 · sourceconst fn min(self, other: Self) -> Self
 
const fn min(self, other: Self) -> Self
1.50.0 · sourceconst fn clamp(self, min: Self, max: Self) -> Selfwhere
    Self: PartialOrd<Self>,
 
const fn clamp(self, min: Self, max: Self) -> Selfwhere
    Self: PartialOrd<Self>,
sourceimpl ParentClassIs for SpinButton
 
impl ParentClassIs for SpinButton
sourceimpl<OT: ObjectType> PartialEq<OT> for SpinButton
 
impl<OT: ObjectType> PartialEq<OT> for SpinButton
sourceimpl<OT: ObjectType> PartialOrd<OT> for SpinButton
 
impl<OT: ObjectType> PartialOrd<OT> for SpinButton
sourcefn partial_cmp(&self, other: &OT) -> Option<Ordering>
 
fn partial_cmp(&self, other: &OT) -> Option<Ordering>
1.0.0 · sourceconst fn le(&self, other: &Rhs) -> bool
 
const fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresourceimpl StaticType for SpinButton
 
impl StaticType for SpinButton
sourcefn static_type() -> Type
 
fn static_type() -> Type
Self.impl Eq for SpinButton
impl IsA<Buildable> for SpinButton
impl IsA<CellEditable> for SpinButton
impl IsA<Editable> for SpinButton
impl IsA<Entry> for SpinButton
impl IsA<Orientable> for SpinButton
impl IsA<Widget> for SpinButton
Auto Trait Implementations
impl RefUnwindSafe for SpinButton
impl !Send for SpinButton
impl !Sync for SpinButton
impl Unpin for SpinButton
impl UnwindSafe for SpinButton
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Cast for Twhere
    T: ObjectType,
 
impl<T> Cast for Twhere
    T: ObjectType,
sourcefn upcast<T>(self) -> Twhere
    T: ObjectType,
    Self: IsA<T>,
 
fn upcast<T>(self) -> Twhere
    T: ObjectType,
    Self: IsA<T>,
T. Read moresourcefn upcast_ref<T>(&self) -> &Twhere
    T: ObjectType,
    Self: IsA<T>,
 
fn upcast_ref<T>(&self) -> &Twhere
    T: ObjectType,
    Self: IsA<T>,
T. Read moresourcefn downcast<T>(self) -> Result<T, Self>where
    T: ObjectType,
    Self: CanDowncast<T>,
 
fn downcast<T>(self) -> Result<T, Self>where
    T: ObjectType,
    Self: CanDowncast<T>,
T. Read moresourcefn downcast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
    Self: CanDowncast<T>,
 
fn downcast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
    Self: CanDowncast<T>,
T. Read moresourcefn dynamic_cast<T>(self) -> Result<T, Self>where
    T: ObjectType,
 
fn dynamic_cast<T>(self) -> Result<T, Self>where
    T: ObjectType,
T. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast and upcast will do many checks at compile-time already. Read moresourcefn dynamic_cast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
 
fn dynamic_cast_ref<T>(&self) -> Option<&T>where
    T: ObjectType,
T. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast and upcast will do many checks at compile-time already. Read moresourceunsafe fn unsafe_cast<T>(self) -> Twhere
    T: ObjectType,
 
unsafe fn unsafe_cast<T>(self) -> Twhere
    T: ObjectType,
T unconditionally. Read moresourceunsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
    T: ObjectType,
 
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
    T: ObjectType,
&T unconditionally. Read moresourceimpl<U> IsSubclassableExt for Uwhere
    U: IsClass + ParentClassIs,
 
impl<U> IsSubclassableExt for Uwhere
    U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)where
    T: ObjectSubclass,
    <U as ParentClassIs>::Parent: IsSubclassable<T>,
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)where
    T: ObjectSubclass,
    <U as ParentClassIs>::Parent: IsSubclassable<T>,
sourceimpl<T> ObjectExt for Twhere
    T: ObjectType,
 
impl<T> ObjectExt for Twhere
    T: ObjectType,
sourcefn is<U>(&self) -> boolwhere
    U: StaticType,
 
fn is<U>(&self) -> boolwhere
    U: StaticType,
true if the object is an instance of (can be cast to) T.sourcefn object_class(&self) -> &Class<Object>
 
fn object_class(&self) -> &Class<Object>
ObjectClass of the object. Read moresourcefn class_of<U>(&self) -> Option<&Class<U>>where
    U: IsClass,
 
fn class_of<U>(&self) -> Option<&Class<U>>where
    U: IsClass,
T. Read moresourcefn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
    U: IsInterface,
 
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
    U: IsInterface,
T of the object. Read moresourcefn set_property<V>(&self, property_name: &str, value: V)where
    V: ToValue,
 
fn set_property<V>(&self, property_name: &str, value: V)where
    V: ToValue,
sourcefn set_property_from_value(&self, property_name: &str, value: &Value)
 
fn set_property_from_value(&self, property_name: &str, value: &Value)
sourcefn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
 
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
sourcefn set_properties_from_value(&self, property_values: &[(&str, Value)])
 
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
sourcefn property<V>(&self, property_name: &str) -> Vwhere
    V: 'static + for<'b> FromValue<'b>,
 
fn property<V>(&self, property_name: &str) -> Vwhere
    V: 'static + for<'b> FromValue<'b>,
property_name of the object and cast it to the type V. Read moresourcefn property_value(&self, property_name: &str) -> Value
 
fn property_value(&self, property_name: &str) -> Value
property_name of the object. Read moresourcefn property_type(&self, property_name: &str) -> Option<Type>
 
fn property_type(&self, property_name: &str) -> Option<Type>
property_name of this object. Read moresourcefn find_property(&self, property_name: &str) -> Option<ParamSpec>
 
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec of the property property_name of this object.sourcefn list_properties(&self) -> PtrSlice<ParamSpec>
 
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec of the properties of this object.sourcefn freeze_notify(&self) -> PropertyNotificationFreezeGuard
 
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
sourceunsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
    QD: 'static,
 
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
    QD: 'static,
key. Read moresourceunsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
    QD: 'static,
 
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
    QD: 'static,
key. Read moresourceunsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
    QD: 'static,
 
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
    QD: 'static,
key. Read moresourceunsafe fn set_data<QD>(&self, key: &str, value: QD)where
    QD: 'static,
 
unsafe fn set_data<QD>(&self, key: &str, value: QD)where
    QD: 'static,
key. Read moresourceunsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
    QD: 'static,
 
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
    QD: 'static,
key. Read moresourceunsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
    QD: 'static,
 
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
    QD: 'static,
key. Read moresourcefn block_signal(&self, handler_id: &SignalHandlerId)
 
fn block_signal(&self, handler_id: &SignalHandlerId)
sourcefn unblock_signal(&self, handler_id: &SignalHandlerId)
 
fn unblock_signal(&self, handler_id: &SignalHandlerId)
sourcefn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
 
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
sourcefn stop_signal_emission_by_name(&self, signal_name: &str)
 
fn stop_signal_emission_by_name(&self, signal_name: &str)
sourcefn connect<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
 
fn connect<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
signal_name on this object. Read moresourcefn connect_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
 
fn connect_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value> + Send + Sync,
signal_id on this object. Read moresourcefn connect_local<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
 
fn connect_local<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
signal_name on this object. Read moresourcefn connect_local_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
 
fn connect_local_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: 'static + Fn(&[Value]) -> Option<Value>,
signal_id on this object. Read moresourceunsafe fn connect_unsafe<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
 
unsafe fn connect_unsafe<F>(
    &self,
    signal_name: &str,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
signal_name on this object. Read moresourceunsafe fn connect_unsafe_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
 
unsafe fn connect_unsafe_id<F>(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    callback: F
) -> SignalHandlerIdwhere
    F: Fn(&[Value]) -> Option<Value>,
signal_id on this object. Read moresourcefn connect_closure(
    &self,
    signal_name: &str,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
 
fn connect_closure(
    &self,
    signal_name: &str,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
signal_name on this object. Read moresourcefn connect_closure_id(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
 
fn connect_closure_id(
    &self,
    signal_id: SignalId,
    details: Option<Quark>,
    after: bool,
    closure: RustClosure
) -> SignalHandlerId
signal_id on this object. Read moresourcefn watch_closure(&self, closure: &impl AsRef<Closure>)
 
fn watch_closure(&self, closure: &impl AsRef<Closure>)
closure to the lifetime of the object. When
the object’s reference count drops to zero, the closure will be
invalidated. An invalidated closure will ignore any calls to
invoke_with_values, or
invoke when using Rust closures. Read moresourcefn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
 
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit but takes Value for the arguments.sourcefn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_by_name_with_values(
    &self,
    signal_name: &str,
    args: &[Value]
) -> Option<Value>
 
fn emit_by_name_with_values(
    &self,
    signal_name: &str,
    args: &[Value]
) -> Option<Value>
sourcefn emit_by_name_with_details<R>(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit_by_name_with_details<R>(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_by_name_with_details_and_values(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[Value]
) -> Option<Value>
 
fn emit_by_name_with_details_and_values(
    &self,
    signal_name: &str,
    details: Quark,
    args: &[Value]
) -> Option<Value>
sourcefn emit_with_details<R>(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
 
fn emit_with_details<R>(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[&dyn ToValue]
) -> Rwhere
    R: TryFromClosureReturnValue,
sourcefn emit_with_details_and_values(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[Value]
) -> Option<Value>
 
fn emit_with_details_and_values(
    &self,
    signal_id: SignalId,
    details: Quark,
    args: &[Value]
) -> Option<Value>
sourcefn disconnect(&self, handler_id: SignalHandlerId)
 
fn disconnect(&self, handler_id: SignalHandlerId)
sourcefn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
 
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
notify signal of the object. Read moresourcefn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec),
 
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
    F: 'static + Fn(&T, &ParamSpec),
notify signal of the object. Read moresourceunsafe fn connect_notify_unsafe<F>(
    &self,
    name: Option<&str>,
    f: F
) -> SignalHandlerIdwhere
    F: Fn(&T, &ParamSpec),
 
unsafe fn connect_notify_unsafe<F>(
    &self,
    name: Option<&str>,
    f: F
) -> SignalHandlerIdwhere
    F: Fn(&T, &ParamSpec),
notify signal of the object. Read more