GtkEntry

描述 [src]

class Gtk.Entry : Gtk.Widget
  implements Gtk.Accessible, Gtk.Buildable, Gtk.CellEditable, Gtk.ConstraintTarget, Gtk.Editable {
  /* No available fields */
}

GtkEntry 是一个单行文本输入小部件。

An example GtkEntry

默认情况下支持相当大一组按键绑定。如果输入的文本比小部件的分配更长,则小部件将滚动,以便光标位置可见。

在针对密码和其他敏感信息使用输入框时,可以使用 gtk_entry_set_visibility() 将其置于“密码模式”。在此模式下,输入的文本使用“不可见”字符显示。默认情况下,GTK 会选择当前字体中可用的最佳不可见字符,但可以通过 gtk_entry_set_invisible_char() 更改该字符。

GtkEntry 有能力在文本后方显示进度或活动信息。要使输入框显示此类信息,请使用 gtk_entry_set_progress_fraction()gtk_entry_set_progress_pulse_step()

此外,GtkEntry 可以在条目的任一侧显示图标。这些图标可通过点击激活,可设置为拖放源并且可以具有工具提示。要添加某个图标,请使用 gtk_entry_set_icon_from_gicon() 或其他通过图标名称或可绘图设置图标的各种函数。要在用户点击某个图标时触发某个操作,请连接到 GtkEntry::icon-press 信号。要允许通过某个图标进行 DND 操作,请使用 gtk_entry_set_icon_drag_source()。要在某个图标上设置工具提示,请使用 gtk_entry_set_icon_tooltip_text() 或对应于标记的函数。

请注意,只能通过点击条目中的某个图标来获得的功能或信息,对于无法使用鼠标或其他指向设备的用户可能根本无法访问。因此,建议还可以通过其他方式来实现此类功能,例如,通过条目的上下文菜单。

CSS 节点

entry[.flat][.warning][.error]
├── text[.readonly]
├── image.left
├── image.right
╰── [progress[.pulse]]

GtkEntry 具有名称为 entry 的主节点。根据条目的属性,样式类 .read-only 和 .flat 可能会出现。样式类 .warning 和 .error 也可用于条目。

当条目显示图标时,它会添加名称为 image 的子节点和样式类为 .left 或 .right,具体取决于图标的出现位置。

当条目显示进度时,它会添加名称为 progress 的子节点。当显示的进度为脉冲时,节点具有样式类 .pulse。

有关在各种情况下添加到文本节点的所有子节点,请参见 GtkText

作为 GtkBuildable 的 GtkEntry

GtkEntry 实现的 GtkBuildable 接口支持自定义 <attributes> 元素,它支持任意数量的 <attribute> 元素。<attribute> 元素具有名为“name”、“value”、“start”和“end”的属性,并允许您为此标签指定 PangoAttribute 值。

指定 Pango 属性的 UI 定义片段示例

<object class="GtkEntry">
  <attributes>
    <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
    <attribute name="background" value="red" start="5" end="10"/>
  </attributes>
</object>

start 和 end 属性指定 Pango 属性适用的字元范围。如果未指定 start 和 end,则属性适用于整个文本。请注意,使用可翻译属性时,指定范围并没有太大的意义。请改用嵌入在可翻译内容中的标记。

辅助功能

GtkEntry 使用 GTK_ACCESSIBLE_ROLE_TEXT_BOX 角色。

层次结构

hierarchy this GtkEntry implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkCellEditable this--implements_2 implements_3 GtkConstraintTarget this--implements_3 implements_4 GtkEditable this--implements_4 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

构造函数

gtk_entry_new

新建一个条目。

gtk_entry_new_with_buffer

使用指定的文本缓冲区新建一个条目。

实例方法

gtk_entry_get_activates_default

检索通过 gtk_entry_set_activates_default() 设置的值。

gtk_entry_get_alignment

获取通过 gtk_entry_set_alignment() 设置的值。

gtk_entry_get_attributes

获取 GtkEntry 的属性列表。

gtk_entry_get_buffer

获取包含此小部件文本的 GtkEntryBuffer 对象。

gtk_entry_get_completion

返回 entry 当前使用的辅助完成对象。

已弃用:4.10 

gtk_entry_get_current_icon_drag_source

返回当前 DND 操作源图标的索引,或 -1。

gtk_entry_get_extra_menu

获取使用 gtk_entry_set_extra_menu() 设置的菜单模型。

gtk_entry_get_has_frame

获取 gtk_entry_set_has_frame() 设置的值。

gtk_entry_get_icon_activatable

返回图标是否可激活。

gtk_entry_get_icon_area

获取 icon_pos 中的条目图标绘制区域。

gtk_entry_get_icon_at_pos

找到指定位置的图标并返回其索引。

gtk_entry_get_icon_gicon

检索用于图标的 GIcon

gtk_entry_get_icon_name

检索用于图标的图标名称。

gtk_entry_get_icon_paintable

检索用于图标的 GdkPaintable

gtk_entry_get_icon_sensitive

返回图标显示为敏感还是不敏感。

gtk_entry_get_icon_storage_type

获取图标用来存储图像数据的表示类型。

gtk_entry_get_icon_tooltip_markup

获取 entry 中指定位置的图标上的工具提示内容。

gtk_entry_get_icon_tooltip_text

获取 entry 中指定位置的图标上的工具提示内容。

gtk_entry_get_input_hints

获取此 GtkEntry 的输入提示。

gtk_entry_get_input_purpose

获取 GtkEntry 的输入用途。

gtk_entry_get_invisible_char

检索在“密码模式”下显示在实际文本位置的字符。

gtk_entry_get_max_length

检索 entry 中文本允许的最大长度。

gtk_entry_get_overwrite_mode

获取 GtkEntry 是否处于改写模式。

gtk_entry_get_placeholder_text

entry 为空且无焦点时,检索将显示的文本。

gtk_entry_get_progress_fraction

返回已完成的任务的当前分数。

gtk_entry_get_progress_pulse_step

检索 gtk_entry_set_progress_pulse_step() 设置的脉冲步骤。

gtk_entry_get_tabs

获取 GtkEntry 的制表符。

gtk_entry_get_text_length

检索 entry 中文本的当前长度。

gtk_entry_get_visibility

检索 entry 中的文本是否可见。

gtk_entry_grab_focus_without_selecting

使 entry 具有键盘焦点。

gtk_entry_progress_pulse

指示已取得一定进展,但不知道有多少。

gtk_entry_reset_im_context

根据需要重置条目的输入法上下文。

gtk_entry_set_activates_default

设置在 entry 中按下 Enter 是否将激活窗口中包含 entry 的默认小部件。

gtk_entry_set_alignment

设置 entry 内容的对齐方式。

gtk_entry_set_attributes

设置 PangoAttrList

gtk_entry_set_buffer

设置包含此小部件文本的 GtkEntryBuffer 对象。

gtk_entry_set_completion

completion 设置为要与 entry 一起使用的辅助完成对象。

已弃用:4.10 

gtk_entry_set_extra_menu

在构建 entry 的上下文菜单时,设置要添加的菜单模型。

gtk_entry_set_has_frame

设置条目是否在其周围带有一个斜角的边框。

gtk_entry_set_icon_activatable

设置图标是否可激活。

gtk_entry_set_icon_drag_source

将指定位置的图标设置为拖放源。

gtk_entry_set_icon_from_gicon

根据当前的图标主题,设置在指定位置的条目中显示的图标。

gtk_entry_set_icon_from_icon_name

根据当前的图标主题,设置在指定位置的条目中显示的图标。

gtk_entry_set_icon_from_paintable

使用 GdkPaintable 设置指定位置中显示的图标。

gtk_entry_set_icon_sensitive

设置指定图标的敏感性。

gtk_entry_set_icon_tooltip_markup

设置指定位置的图标的工具提示为tooltip

gtk_entry_set_icon_tooltip_text

设置指定位置的图标的工具提示为tooltip

gtk_entry_set_input_hints

设置其他提示,这些提示能让输入法微调其行为。

gtk_entry_set_input_purpose

设置输入用途,输入法可以根据此项调整其行为。

gtk_entry_set_invisible_char

设置用于替换“密码模式”中实际文本的字符。

gtk_entry_set_max_length

设置窗口小部件内容的最大允许长度。

gtk_entry_set_overwrite_mode

设置在GtkEntry中键入时是否覆盖文本。

gtk_entry_set_placeholder_text

设置在entry为空时显示的文本。

gtk_entry_set_progress_fraction

让条目的进度指示器“填充”指定了的部分栏。

gtk_entry_set_progress_pulse_step

设置在每次脉冲时移动进度弹跳方块所占总条目宽度的部分。

gtk_entry_set_tabs

设置PangoTabArray

gtk_entry_set_visibility

设置条目的内容是否可见。

gtk_entry_unset_invisible_char

取消设置不可见字符,以便再次使用默认不可见字符。参见gtk_entry_set_invisible_char()

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

获取 buildable 对象的 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

属性

Gtk.Entry:activates-default

在按 Enter 时是否激活默认组件。

Gtk.Entry:attributes

要应用于输入文本的 Pango 属性列表。

Gtk.Entry:buffer

实际存储文本的缓冲区对象。

Gtk.Entry:completion

要与输入字段一起使用的辅助完成对象。

已弃用:4.10 

Gtk.Entry:enable-emoji-completion

是否建议使用 :- 作为分隔符号的名称(如 :heart:)的 Emoji 替换。建议 Emoji 替换。 :heart:

Gtk.Entry:extra-menu

其内容将附加到上下文菜单的菜单模型。

Gtk.Entry:has-frame

输入字段是否应绘制 边框。

Gtk.Entry:im-module

应为此输入字段使用哪个 IM(输入法)模块。

Gtk.Entry:input-hints

其他提示,允许输入法微调其 行为。

Gtk.Entry:input-purpose

此文本字段的 目的。

Gtk.Entry:invisible-char

在屏蔽输入内容(“密码模式”)时要使用的字符。

Gtk.Entry:invisible-char-set

设置了 GtkEntry 的不可见字符。

Gtk.Entry:max-length

此输入字段的最大字符数。

Gtk.Entry:overwrite-mode

GtkEntry 中键入时是否覆盖文本。

Gtk.Entry:placeholder-text

GtkEntry 为空且未获得焦点时,将在其中显示的文本。

Gtk.Entry:primary-icon-activatable

主图标是否可 激活。

Gtk.Entry:primary-icon-gicon

要用于输入字段的主图标的 GIcon

Gtk.Entry:primary-icon-name

要用于输入字段的主图标的图标名称。

Gtk.Entry:primary-icon-paintable

要作为输入字段的主图标使用的 GdkPaintable

Gtk.Entry:primary-icon-sensitive

主图标是否 敏感。

Gtk.Entry:primary-icon-storage-type

用于输入字段的主图标的 表示。

Gtk.Entry:primary-icon-tooltip-markup

主图标上的工具提示的内容,包含标记者。

Gtk.Entry:primary-icon-tooltip-text

主图标上的工具提示的内容。

Gtk.Entry:progress-fraction

已完成任务的当前百分比。

Gtk.Entry:progress-pulse-step

每次脉冲为进度弹跳块移动的输入总宽度的百分比。

Gtk.Entry:scroll-offset

在屏幕左侧滚动离开输入字段的像素数。

Gtk.Entry:secondary-icon-activatable

辅助图标是否可 激活。

Gtk.Entry:secondary-icon-gicon

要用于输入字段的辅助图标的 GIcon

Gtk.Entry:secondary-icon-name

要用于输入字段的辅助图标的图标名称。

Gtk.Entry:secondary-icon-paintable

要作为输入字段的辅助图标使用的 GdkPaintable

Gtk.Entry:secondary-icon-sensitive

辅助图标是否 敏感。

Gtk.Entry:secondary-icon-storage-type

用于输入字段的辅助图标的 表示。

Gtk.Entry:secondary-icon-tooltip-markup

辅助图标上的工具提示的内容,包含标记者。

Gtk.Entry:secondary-icon-tooltip-text

辅助图标上的工具提示的内容。

Gtk.Entry:show-emoji-icon

条目在辅助图标位置是否显示表情符号图标以打开表情符号 选择器。

Gtk.Entry:tabs

要应用于条目文本的制表位列表。

Gtk.Entry:text-length

GtkEntry 中文本的长度。

Gtk.Entry:truncate-multiline

如果为“真”,粘贴的多行文本将被截断到第一行。

Gtk.Entry:visibility

条目是否应显示“不可见字符”而不是实际文本(“密码模式”)。

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(右)。

信号

Gtk.Entry::activate

激活时发出的输入。

Gtk.Entry::icon-press

单击激活图标时发出的。

Gtk.Entry::icon-release

在单击可激活图标后释放按钮时发出的。

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

widgetGdkSurface 关联时发出的。

GtkWidget::show

widget 显示时发出的。

GtkWidget::state-flags-changed

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

GtkWidget::unmap

widget 将要取消映射时发出的。

GtkWidget::unrealize

widget 关联的 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

用户在小部件中插入文本时发出的。

类结构

struct GtkEntryClass {
  GtkWidgetClass parent_class;
  void (* activate) (
    GtkEntry* entry
  );
  
}

GtkEntry 的类结构。所有虚拟函数都有一个默认实现。派生类可以将信号处理程序的虚拟函数指针设置为 NULL,但必须使 get_text_area_sizeget_frame_size 保持非 NULL;要么使用默认实现,要么提供一个自定义实现。

类成员
parent_class: GtkWidgetClass

父类。

activate: void (* activate) ( GtkEntry* entry )

GtkEntry::activate 信号的类处理程序。默认实现会激活 gtk.activate-default 行为。

虚拟方法

Gtk.EntryClass.activate

GtkEntry::activate 信号的类处理程序。默认实现会激活 gtk.activate-default 行为。