GtkSpinButton

描述 [源]

final class Gtk.SpinButton : Gtk.Widget
  implements Gtk.Accessible, Gtk.AccessibleRange, Gtk.Buildable, Gtk.CellEditable, Gtk.ConstraintTarget, Gtk.Editable, Gtk.Orientable {
  /* No available fields */
}

GtkSpinButton是允许用户设置一些属性值的一种理想方式。

An example GtkSpinButton

与直接在GtkEntry中输入数字相比,GtkSpinButton允许用户点击两个箭头之一来增加或减少显示的值。也可以输入值,额外的好处是它可以进行检查以确保它在一个特定的范围内。

GtkSpinButton的主要属性通过一个调整项。有关调整项属性的详细信息,请参阅GtkAdjustment文档。

请注意,GtkSpinButton默认会使其输入框足够大,以容纳调整项的下限和上限。如果不希望这样做,可以通过显式设置GtkEditable:width-chars为不在 -1 的值来关闭自动大小调整。

使用GtkSpinButton获取整数

// Provides a function to retrieve an integer value from a GtkSpinButton
// and creates a spin button to model percentage values.

int
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 ();

  // creates the spinbutton, with no decimal places
  button = gtk_spin_button_new (adjustment, 1.0, 0);
  gtk_window_set_child (GTK_WINDOW (window), button);

  gtk_window_present (GTK_WINDOW (window));
}

使用 GtkSpinButton 获取浮点数值

// Provides a function to retrieve a floating point value from a
// GtkSpinButton, and creates a high precision spin button.

float
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 ();

  // creates the spinbutton, with three decimal places
  button = gtk_spin_button_new (adjustment, 0.001, 3);
  gtk_window_set_child (GTK_WINDOW (window), button);

  gtk_window_present (GTK_WINDOW (window));
}

快捷键和手势

以下信号具有默认键绑定

CSS 节点

spinbutton.horizontal
├── text
│    ├── undershoot.left
│    ╰── undershoot.right
├── button.down
╰── button.up
spinbutton.vertical
├── button.up
├── text
│    ├── undershoot.left
│    ╰── undershoot.right
╰── button.down

GtkSpinButton的主要 CSS 节点名称为 spinbutton。它创建了子节点用于 entry 和两个按钮,具有以下名称。按钮节点有 .up 和 .down 风格类。如果存在,GtkText 子节点被放置在文本节点下面。旋钮的朝向通过主节点上的 .vertical 或 .horizontal 风格类反映。

无障碍访问

GtkSpinButton 使用 GTK_ACCESSIBLE_ROLE_SPIN_BUTTON 角色。

层次结构

hierarchy - GTK 文档 this - GTK 文档 GtkSpinButton implements_0 - GTK 文档 GtkAccessible this--implements_0 - GTK 文档 implements_1 - GTK 文档 GtkAccessibleRange this--implements_1 - GTK 文档 implements_2 - GTK 文档 GtkBuildable this--implements_2 - GTK 文档 implements_3 - GTK 文档 GtkCellEditable this--implements_3 - GTK 文档 implements_4 - GTK 文档 GtkConstraintTarget this--implements_4 - GTK 文档 implements_5 - GTK 文档 GtkEditable this--implements_5 - GTK 文档 implements_6 - GTK 文档 GtkOrientable this--implements_6 - GTK 文档 ancestor_0 - GTK 文档 GtkWidget ancestor_0--this - GTK 文档 ancestor_1 - GTK 文档 GInitiallyUnowned ancestor_1--ancestor_0 - GTK 文档 ancestor_2 - GTK 文档 GObject ancestor_2--ancestor_1 - GTK 文档

构造函数

gtk_spin_button_new

创建一个新的 GtkSpinButton

gtk_spin_button_new_with_range

创建一个新的具有给定属性的 GtkSpinButton

实例方法

gtk_spin_button_configure

更改现有旋钮的属性。

gtk_spin_button_get_activates_default

检索由 gtk_spin_button_set_activates_default()` 设置的值。

since: 4.14

gtk_spin_button_get_adjustment

获取与 GtkSpinButton 关联的调整值。

gtk_spin_button_get_climb_rate

返回重复更改的加速率。

gtk_spin_button_get_digits

检索旋钮的精度。

gtk_spin_button_get_increments

获取由 spin_button 使用的当前步长和页面增量。

gtk_spin_button_get_numeric

返回是否可以在旋钮中输入非数字文本。

gtk_spin_button_get_range

获取允许的 spin_button 范围。

gtk_spin_button_get_snap_to_ticks

返回值是否修正到最近的步长。

gtk_spin_button_get_update_policy

获取旋钮的更新行为。

gtk_spin_button_get_value

获取旋钮中的值。

gtk_spin_button_get_value_as_int

以整数形式获取 spin_button 表示的值。

gtk_spin_button_get_wrap

返回是否当超出范围上限或下限时,旋钮的值是否会环绕到相反的限制。

gtk_spin_button_set_activates_default

设置激活旋钮是否会激活包含旋钮的窗口的默认小部件。

since: 4.14

gtk_spin_button_set_adjustment

替换与 spin_button 关联的 GtkAdjustment

gtk_spin_button_set_climb_rate

设置在按下按钮或键时重复更改的加速率。

gtk_spin_button_set_digits

设置 spin_button 显示的精度。

gtk_spin_button_set_increments

设置旋钮的步长和页面增量。

gtk_spin_button_set_numeric

设置标志,决定是否可以在旋钮中输入非数字文本。

gtk_spin_button_set_range

设置 spin_button 的最小和最大允许值。

gtk_spin_button_set_snap_to_ticks

设置策略,确定在提供无效值后激活旋转按钮时,是否将值更改为最接近的步进增量。

gtk_spin_button_set_update_policy

设置旋转按钮的更新行为。

gtk_spin_button_set_value

设置 spin_button 的值。

gtk_spin_button_set_wrap

设置标志,确定当达到范围的下限或上限时,旋转按钮的值是否绕到相反的极限。

gtk_spin_button_spin

通过指定方向和数量来增加或减少旋转按钮的值。

gtk_spin_button_update

手动强制更新旋转按钮。

GtkWidget 继承的方法(162)

请参阅 GtkWidget 以获取方法列表。

GObject 继承的方法(43)

请参阅 GObject 以获取方法列表。

GtkAccessible 继承的方法(19)
gtk_accessible_announce

请求用户屏幕阅读器宣布给定信息。

since: 4.14

gtk_accessible_get_accessible_parent

检索可访问对象的可访问父级。

since: 4.10

gtk_accessible_get_accessible_role

检索可访问对象的可访问角色。

gtk_accessible_get_at_context

检索给定可访问对象的实现。

since: 4.10

gtk_accessible_get_bounds

查询此可访问对象的坐标和尺寸。

since: 4.10

gtk_accessible_get_first_accessible_child

检索可访问对象的首个可访问子对象。

since: 4.10

gtk_accessible_get_next_accessible_sibling

检索可访问对象的下一条可访问兄弟对象。

since: 4.10

gtk_accessible_get_platform_state

查询一个平台状态,如焦点。

since: 4.10

gtk_accessible_reset_property

将可访问属性重置为其默认值。

gtk_accessible_reset_relation

将可访问关系重置为其默认值。

gtk_accessible_reset_state

将可访问状态重置为其默认值。

gtk_accessible_set_accessible_parent

设置可访问对象的父级和兄弟。

since: 4.10

gtk_accessible_update_next_accessible_sibling

更新下一条可访问兄弟。

since: 4.10

gtk_accessible_update_property

更新可访问属性列表。

gtk_accessible_update_property_value

更新可访问属性数组的值。

gtk_accessible_update_relation

更新可访问关系列表。

gtk_accessible_update_relation_value

更新可访问关系数组的值。

gtk_accessible_update_state

更新可访问状态列表。

gtk_accessible_update_state_value

更新可访问状态数组的值。

GtkBuildable 继承的方法(1)
gtk_buildable_get_buildable_id

获取构建对象 ID

GtkCellEditable 继承的方法(3)
gtk_cell_editable_editing_done

发出 GtkCellEditable::editing-done 信号。

已弃用:4.10 

gtk_cell_editable_remove_widget

发出 GtkCellEditable::remove-widget 信号。

已弃用:4.10 

gtk_cell_editable_start_editing

在 cell_editable 上开始编辑。

GtkEditable 继承的方法(24)

请参阅 GtkEditable 以获取方法列表。

GtkOrientable 继承的方法(2)
gtk_orientable_get_orientation

检索 orientable 的方向。

gtk_orientable_set_orientation

设置 orientable 的方向。

属性

Gtk.SpinButton:activates-default

当旋转按钮被激活时是否激活默认小部件。

since: 4.14

Gtk.SpinButton:adjustment

包含旋转按钮值的调整。

Gtk.SpinButton:climb-rate

按住按钮或键时的加速率。

Gtk.SpinButton:digits

要显示的小数位数。

Gtk.SpinButton:numeric

是否忽略非数字字符。

Gtk.SpinButton:snap-to-ticks

是否将错误值自动更改为最近的步长增量。

Gtk.SpinButton:update-policy

是否始终更新或仅在值可接受时更新。

Gtk.SpinButton:value

当前值。

Gtk.SpinButton:wrap

是否在达到极限时循环。

GtkWidget 继承的属性(34)
Gtk.Widget:can-focus

该小部件或其任何子小部件是否可以接受输入焦点。

Gtk.Widget:can-target

该小部件是否可以接收指针事件。

Gtk.Widget:css-classes

应用于该小部件的css类列表。

Gtk.Widget:css-name

此小部件在CSS树中的名称。

Gtk.Widget:cursor

widget使用的光标。

Gtk.Widget:focus-on-click

是否有鼠标点击时应获取焦点。

Gtk.Widget:focusable

是否小部件本身将接受输入焦点。

Gtk.Widget:halign

如果小部件获得额外空间,则如何分配水平空间。

Gtk.Widget:has-default

该小部件是否是默认小部件。

Gtk.Widget:has-focus

小部件是否拥有输入焦点。

Gtk.Widget:has-tooltip

widget上启用或禁用GtkWidget::query-tooltip信号的发射。

Gtk.Widget:height-request

小部件高度请求的覆盖。

Gtk.Widget:hexpand

是否要水平展开。

Gtk.Widget:hexpand-set

是否要使用hexpand属性。

Gtk.Widget:layout-manager

用于计算小部件首选大小和分配其子小部件的GtkLayoutManager实例。

Gtk.Widget:margin-bottom

小部件底部的边距。

Gtk.Widget:margin-end

小部件终端的边距,水平。

Gtk.Widget:margin-start

小部件起始处的边距,水平。

Gtk.Widget:margin-top

小部件顶部的边距。

Gtk.Widget:name

小部件的名称。

Gtk.Widget:opacity

所需的小部件不透明度。

Gtk.Widget:overflow

如何处理小部件内容区域之外的内容。

Gtk.Widget:parent

此小部件的父小部件。

Gtk.Widget:receives-default

是否有小部件在被焦点时接收默认操作。

Gtk.Widget:root

包含此小部件的当前小部件树的GtkRoot小部件。

Gtk.Widget:scale-factor

小部件的缩放因子。

Gtk.Widget:sensitive

小部件是否对输入有响应。

Gtk.Widget:tooltip-markup

将工具提示文本设置为给定的字符串,该字符串使用Pango标记。

Gtk.Widget:tooltip-text

将工具提示文本设置为给定的字符串。

Gtk.Widget:valign

如果小部件获得额外空间,则如何分配垂直空间。

Gtk.Widget:vexpand

是否要垂直展开。

Gtk.Widget:vexpand-set

是否要使用vexpand属性。

Gtk.Widget:visible

小部件是否可见。

Gtk.Widget:width-request

小部件宽度请求的覆盖。

GtkAccessible 继承的属性(1)
GtkAccessible:accessible-role

给定GtkAccessible实现的访问角色。

GtkCellEditable 继承的属性(1)
GtkCellEditable:editing-canceled

指示单元格上的编辑是否已被取消。

GtkEditable 继承的属性(8)
GtkEditable:cursor-position

插入光标在字符中的当前位置。

GtkEditable:editable

是否可以编辑条目内容。

GtkEditable:enable-undo

是否为可编辑项启用撤销/重做。

GtkEditable:max-width-chars

输入框期望的最大字符宽度。

GtkEditable:selection-bound

从光标处到选择框末端的相反端点,以字符为单位。

GtkEditable:text

输入框的内容。

GtkEditable:width-chars

在输入框中预留的空间字符数。

GtkEditable:xalign

水平对齐,从 0 (左) 到 1 (右)。

GtkOrientable 继承属性(1)
GtkOrientable:orientation

可定位对象的定位方向。

信号

Gtk.SpinButton::activate

当旋转按钮被激活时发出。

since: 4.14

Gtk.SpinButton::change-value

当用户初始化值变化时发出。

Gtk.SpinButton::input

用于将用户输入转换为双精度值的信号。

Gtk.SpinButton::output

用于调整显示值的格式的信号。

Gtk.SpinButton::value-changed

当值发生变化时发出。

Gtk.SpinButton::wrapped

旋转按钮从最大值到最小值或反之循环后立即发出。

GtkWidget 继承的信号(13)
GtkWidget::destroy

所有持有该小部件引用的持有者都应该释放他们持有的引用。

GtkWidget::direction-changed

当小部件的文字方向改变时发出。

GtkWidget::hide

widget 隐藏时发出。

GtkWidget::keynav-failed

如果键盘导航失败,则发出。

GtkWidget::map

widget 即将映射时发出。

GtkWidget::mnemonic-activate

当一个小部件通过快捷键激活时发出。

GtkWidget::move-focus

当焦点移动时发出。

GtkWidget::query-tooltip

当小部件的提示即将显示时发出。

GtkWidget::realize

widget 与一个 GdkSurface 关联时发出。

GtkWidget::show

widget 显示时发出。

GtkWidget::state-flags-changed

当小部件状态更改时发出。

GtkWidget::unmap

widget 即将取消映射时发出。

GtkWidget::unrealize

当与小部件关联的 GdkSurface 被销毁时发出。

GObject 继承的信号(1)
GObject::notify

当通过 g_object_set_property(), g_object_set() 等设置一个对象的一个属性的值时,在对象上发出通知信号。

GtkCellEditable 继承的信号(2)
GtkCellEditable::editing-done

此信号是向单元格渲染器发出信号的标志,以从 cell_editable 更新其值。

GtkCellEditable::remove-widget

此信号旨在指示单元格已完成编辑,并且 cell_editable 小部件正在被移除,可能会随后被销毁。

GtkEditable 继承的信号(3)
GtkEditable::changed

在内容上完成的单个用户可见操作结束时发出。

GtkEditable::delete-text

当用户从小部件中删除文本时发出。

GtkEditable::insert-text

当用户向小部件中插入文本时发出。