GtkText

描述 [src]

final class Gtk.Text : Gtk.Widget
  implements Gtk.Accessible, Gtk.AccessibleText, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Editable {
  /* No available fields */
}

单行文本 条目。

GtkText 是单行文本编辑的通用实现,在 GtkEntryGtkPasswordEntryGtkSpinButton 和其他小组件中共享。在所有这些中,GtkText 实例用作 GtkEditable 实现的委托。

默认情况下支持大量键绑定。如果输入的文本超出了小组件的分配,小组件将滚动,以便光标位置可见。

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

如果希望在输入框中添加图标或进度显示,请查看 GtkEntry。针对更专业化的用例还有其他选择,例如 GtkSearchEntry

如果需要多行可编辑文本,请使用 GtkTextView

快捷方式和手势

GtkText 支持以下键盘快捷方式

  • Shift+F10Menu 打开上下文菜单。
  • Ctrl+ACtrl+/ 选择全部文本。
  • Ctrl+Shift+ACtrl+\ 取消选择所有内容。
  • Ctrl+Z 撤消上一次修改。
  • Ctrl+YCtrl+Shift+Z 重做上一次撤消的修改。
  • Ctrl+Shift 设置文本方向。左键将其设置为 LTR,右键将其设置为 RTL

此外,以下信号具有默认键绑定

动作

GtkText 定义一组内置动作

  • clipboard.copy 将内容复制到剪贴板。
  • clipboard.cut 将内容复制到剪贴板并将其从小组件中删除。
  • clipboard.paste 将剪贴板的内容插入到小组件中。
  • menu.popup 打开上下文菜单。
  • misc.insert-emoji 打开表情符号选择器。
  • misc.toggle-visibility 切换 GtkText:visibility 属性。
  • misc.toggle-direction 切换文本方向。
  • selection.delete 删除当前选择。
  • selection.select-all 选择所有小组件内容。
  • text.redo 重做对内容的最后一次更改。
  • text.undo 撤消对内容的最后一次更改。

CSS 节点

text[.read-only]
├── placeholder
├── undershoot.left
├── undershoot.right
├── [selection]
├── [cursor-handle[.top]
├── [cursor-handle.bottom]
├── [block-cursor]
├── [cursor-handle[.top/.bottom][.insertion-cursor]]
╰── [window.popup]

GtkText 有一个主节点,名称为 text。根据小组件的属性,.read-only 样式类可能会出现。

当输入框有选择时,将添加一个名称为 selection 的子节点。

当输入框处于覆盖模式时,将添加一个名称为 block-cursor 的子节点,它确定块光标的绘制方式。

上下文菜单的 CSS 节点作为名称为 popup 的子节点添加。

在内容滚动出视野时,undershoot 节点用于绘制下溢指示。根据指示绘制的位置,这些节点会添加 .left.right 样式类。

在使用触摸且显示触摸选择手柄时,它们使用名为 cursor-handleCSS 节点。根据显示在选择中的位置,它们获取 .top.bottom 样式类。如果仅为文本光标提供了一个手柄,则它获取样式类 .insertion-cursor

辅助功能

GtkText 使用 GTK_ACCESSIBLE_ROLE_NONE 角色,这导致其跳过辅助功能。因为预期将 GtkText 用作将表示为辅助功能的 GtkEditable 实现的委托。

层次结构

hierarchy this GtkText implements_0 GtkAccessible this--implements_0 implements_1 GtkAccessibleText this--implements_1 implements_2 GtkBuildable 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_text_new

创建新的 GtkText

gtk_text_new_with_buffer

创建具有指定缓冲区的新 GtkText

实例方法

gtk_text_compute_cursor_extents

确定给定字符位置的强光标和弱光标的位置。

since: 4.4

gtk_text_get_activates_default

返回按下 Enter 是否会激活包含该控件的窗口的默认控件。

gtk_text_get_attributes

获取在文本控件上设置的属性列表。

gtk_text_get_buffer

获取包含该控件的文本的输入缓冲区对象。

gtk_text_get_enable_emoji_completion

返回表情符号完成是否启用。

gtk_text_get_extra_menu

获取文本控件的附加菜单模型。

gtk_text_get_input_hints

获取文本控件的输入提示。

gtk_text_get_input_purpose

获取文本控件的输入目的。

gtk_text_get_invisible_char

当可见性设为 false 时,检索显示的字符。

gtk_text_get_max_length

检索允许的最大内容长度。

gtk_text_get_overwrite_mode

获取键入时是否覆盖文本。

gtk_text_get_placeholder_text

当文本控件为空且未聚焦时,检索将显示的文本。

gtk_text_get_propagate_text_width

返回文本控件是否会随内容而增长和缩小。

gtk_text_get_tabs

获取文本控件的制表位。

gtk_text_get_text_length

检索内容的长度。

gtk_text_get_truncate_multiline

返回粘贴的文本是否会被截断到第一行。

gtk_text_get_visibility

检索文本是否可见。

gtk_text_grab_focus_without_selecting

导致文本控件拥有键盘焦点。

gtk_text_set_activates_default

设置按下 Enter 是否会激活默认控件。

gtk_text_set_attributes

将属性应用于文本控件的内容。

gtk_text_set_buffer

设置包含该控件的文本的输入缓冲区对象。

gtk_text_set_enable_emoji_completion

设置表情符号完成是否启用。

gtk_text_set_extra_menu

设置一个菜单模型以添加到文本控件的上下文菜单。

gtk_text_set_input_hints

设置一些提示,让输入法微调它们的性能。

gtk_text_set_input_purpose

设置文本控件的输入目的。

gtk_text_set_invisible_char

在“密码模式”下设置要使用哪个字符。

gtk_text_set_max_length

设置允许的最大内容长度。

gtk_text_set_overwrite_mode

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

gtk_text_set_placeholder_text

当文本控件为空且未聚焦时,设置要显示的文本。

gtk_text_set_propagate_text_width

设置文本控件是否应随内容而增长和缩小。

gtk_text_set_tabs

设置文本小部件的 tab 键停靠点。

gtk_text_set_truncate_multiline

设置粘贴的文本应截断至第一行。

gtk_text_set_visibility

设置文本小部件的内容是否可见。

gtk_text_unset_invisible_char

取消设置不可见 字符。

继承自 GtkWidget(162)的方法

有关方法的完整列表,请参阅 GtkWidget

继承自 GObject(43)的方法

有关方法的完整列表,请参阅 GObject

继承自 GtkAccessible(19)的方法
gtk_accessible_announce

请求用户的屏幕阅读器播报给定的 消息。

自 4.14 起

gtk_accessible_get_accessible_parent

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

自 4.10 起

gtk_accessible_get_accessible_role

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

gtk_accessible_get_at_context

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

自 4.10 起

gtk_accessible_get_bounds

查询此 可访问对象的坐标和大小。

自 4.10 起

gtk_accessible_get_first_accessible_child

检索可访问 对象的第一个可访问子级。

自 4.10 起

gtk_accessible_get_next_accessible_sibling

检索可访问 对象的下一个可访问同级。

自 4.10 起

gtk_accessible_get_platform_state

查询平台状态,例如 焦点。

自 4.10 起

gtk_accessible_reset_property

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

gtk_accessible_reset_relation

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

gtk_accessible_reset_state

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

gtk_accessible_set_accessible_parent

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

自 4.10 起

gtk_accessible_update_next_accessible_sibling

更新下一个可访问 同级。

自 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

更新可访问 状态数组。

继承自 GtkAccessibleText(3)的方法
gtk_accessible_text_update_caret_position

更新 光标的位置。

自 4.14 起

gtk_accessible_text_update_contents

通知辅助技术内容发生了 更改。

自 4.14 起

gtk_accessible_text_update_selection_bound

更新 选择范围的边界。

自 4.14 起

继承自 GtkBuildable(1)的方法
gtk_buildable_get_buildable_id

获取 buildable 对象的 ID

继承自 GtkEditable(24)的方法

有关方法的完整列表,请参阅 GtkEditable

属性

Gtk.Text:activates-default

当按下 Enter 时,是否激活默认小部件。

Gtk.Text:attributes

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

Gtk.Text:buffer

存储 文本的 GtkEntryBuffer 对象。

Gtk.Text:enable-emoji-completion

是否建议使用 Emoji 替换。

Gtk.Text:extra-menu

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

Gtk.Text:im-module

应使用哪个输入法模块。

Gtk.Text:input-hints

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

Gtk.Text:input-purpose

文本字段的用途。

Gtk.Text:invisible-char

用于在遮挡内容(在“密码模式”中)时的字符。

Gtk.Text:invisible-char-set

是否已设置无形字符。

Gtk.Text:max-length

允许的最大字符 数。

Gtk.Text:overwrite-mode

键入时是否覆盖文本。

Gtk.Text:placeholder-text

GtkText 为空且未聚焦时将显示的文本。

Gtk.Text:propagate-text-width

小部件是否应随着内容而增长和缩小。

Gtk.Text:scroll-offset

屏幕向左滚动像素 数。

Gtk.Text:tabs

此文本小部件的自定义选项卡。

Gtk.Text:truncate-multiline

当为 true 时,粘贴的多行文本将截断为第一 行。

Gtk.Text:visibility

如果为 false,文本将被“无形字符”遮挡。

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` 实现的可访问角色。

继承自 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.Text::activate

用户按下 Enter 键时发出。

Gtk.Text::backspace

用户请求时发出。

Gtk.Text::copy-clipboard

发出以将选中的内容复制到剪贴板。

Gtk.Text::cut-clipboard

发出以将选中的内容剪切到剪贴板。

Gtk.Text::delete-from-cursor

用户开始删除文本时发出。

Gtk.Text::insert-at-cursor

用户开始在光标处插入固定字符串时发出。

Gtk.Text::insert-emoji

发出以显示表情符号选择器。

Gtk.Text::move-cursor

用户开始移动光标时发出。

Gtk.Text::paste-clipboard

发出以粘贴剪贴板的内容。

Gtk.Text::preedit-changed

预编辑文本发生变化时发出。

Gtk.Text::toggle-overwrite

发出以切换覆盖模式。

继承自 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

与 `widget` 关联的 `GdkSurface` 被销毁时发出。

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

对对象的某个属性的值通过 g_object_set_property()、g_object_set() 等进行设置后,会在该对象上发出 notify 信号。

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

在对内容进行用户可见的单次操作的结尾发出。

GtkEditable::delete-text

用户从窗口小部件删除文本时发出。

GtkEditable::insert-text

用户将文本插入窗口小部件时发出。