类
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
是允许用户设置一些属性值的一种理想方式。
与直接在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
角色。
实例方法
gtk_spin_button_get_activates_default
检索由 gtk_spin_button_set_activates_default()` 设置的值。
since: 4.14
从 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)
从 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)
属性
从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)
从GtkCellEditable 继承的属性(1)
从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)
信号
从 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
当用户向小部件中插入文本时发出。