GtkTextBuffer

描述 [源代码]

class Gtk.TextBuffer : GObject.Object
{
  GtkTextBufferPrivate* priv
}

用于在 GtkTextView 中存储显示文本和属性。

您可能需要先阅读 文本小部件概念概述,它提供了有关所有与文本小部件相关的对象和数据类型概述以及它们如何协同工作的信息。

GtkTextBuffer 可以支持撤消对缓冲区内容的更改,请参阅 gtk_text_buffer_set_enable_undo()

层次结构

hierarchy this GtkTextBuffer ancestor_0 GObject ancestor_0--this

祖先

构造函数

gtk_text_buffer_new

创建一个新的文本缓冲区。

实例方法

gtk_text_buffer_add_commit_notify

在将要对 GtkTextBuffer 进行更改时,添加将调用的 GtkTextBufferCommitNotify

since: 4.16

gtk_text_buffer_add_mark

在指定位置 where 添加标记。

gtk_text_buffer_add_selection_clipboard

clipboard 添加到其中 buffer 的选择内容可用的剪辑板列表中。

gtk_text_buffer_apply_tag

buffer 上发出“apply-tag”信号。

gtk_text_buffer_apply_tag_by_name

buffer 上发出“apply-tag”信号。

gtk_text_buffer_backspace

执行适当操作,就像用户按下删除键并且光标处于指定位置 iter

gtk_text_buffer_begin_irreversible_action

标志着可能无法撤销的操作的开始。

gtk_text_buffer_begin_user_action

调用以表明从这里到调用 gtk_text_buffer_end_user_action() 的缓冲区操作是单个用户可见操作的组成部分。

gtk_text_buffer_copy_clipboard

将当前选中的文本复制到剪贴板。

gtk_text_buffer_create_child_anchor

创建并插入一个子锚。

gtk_text_buffer_create_mark

在位置 where 创建一个标记。

gtk_text_buffer_create_tag

创建一个标签并将其添加到 buffer 的标签表中。

gtk_text_buffer_cut_clipboard

将当前选中的文本复制到剪贴板,如果文本可编辑,则删除该文本。

gtk_text_buffer_delete

删除 startend 之间的文本。

gtk_text_buffer_delete_interactive

删除给定范围内的所有可编辑文本。

gtk_text_buffer_delete_mark

删除 mark,使其不再位于缓冲区的任何位置。

gtk_text_buffer_delete_mark_by_name

删除名为 name 的标记;标记必须存在。

gtk_text_buffer_delete_selection

删除“插入”标记和“选择界限”标记之间的范围,即当前选中的文本。

gtk_text_buffer_end_irreversible_action

表示一个可能无法撤销的操作的结尾。

gtk_text_buffer_end_user_action

结束一个用户可见的操作。

gtk_text_buffer_get_bounds

检索缓冲区中的第一个和最后一个迭代器,即整个缓冲区位于范围 [start,end] 内。

gtk_text_buffer_get_can_redo

获取历史记录中是否有可重做操作。

gtk_text_buffer_get_can_undo

获取历史记录中是否有可撤销操作。

gtk_text_buffer_get_char_count

获取缓冲区中的字符数。

gtk_text_buffer_get_enable_undo

获取是否将缓冲区的修改保存到缓冲区以允许撤销和重做操作。

gtk_text_buffer_get_end_iter

iter 初始化为“结束迭代器”,即文本缓冲区中最后一个有效字符之后的位置。

gtk_text_buffer_get_has_selection

指示缓冲区是否当前有文本被选中。

gtk_text_buffer_get_insert

返回表示光标(插入点)的标记。

gtk_text_buffer_get_iter_at_child_anchor

获取 anchorbuffer 中的位置。

gtk_text_buffer_get_iter_at_line

iter 初始化为给定行的开头。

gtk_text_buffer_get_iter_at_line_index

获取指向给定行中 byte_index 的迭代器。

gtk_text_buffer_get_iter_at_line_offset

获取指向给定行中 char_offset 的迭代器。

gtk_text_buffer_get_iter_at_mark

iter 初始化为 mark 的当前位置。

gtk_text_buffer_get_iter_at_offset

iter 初始化为从整个缓冲区起始位置的 char_offset 个字符的位置。

gtk_text_buffer_get_line_count

获取缓冲区中的行数。

gtk_text_buffer_get_mark

返回缓冲区 buffer 中名为 name 的标记,或者返回 NULL 如果缓冲区中不存在这样的标记。

gtk_text_buffer_get_max Undo

获取可执行的最大撤销次数。

gtk_text_buffer_get_modified

指示缓冲区自上次调用 gtk_text_buffer_set_modified() 设置更改标志为 FALSE 以来是否已被修改。

gtk_text_buffer_get_selection_bound

返回表示选择界限的标记。

gtk_text_buffer_get_selection_bounds

如果选中了一些文本,则返回 TRUE;将选择范围的界限放在 startend 中。

gtk_text_buffer_get_selection_content

为此缓冲区获取内容提供者。

gtk_text_buffer_get_slice

返回范围 [start,end] 中的文本。

gtk_text_buffer_get_start_iter

iter 初始化为文本缓冲区的第一个位置。

gtk_text_buffer_get_tag_table

获取与此缓冲区关联的 GtkTextTagTable

gtk_text_buffer_get_text

返回范围 [start,end] 中的文本。

gtk_text_buffer_insert

在位置 iter 插入 len 个字节的 text

gtk_text_buffer_insert_at_cursor

buffer 中插入 text

gtk_text_buffer_insert_child_anchor

iter 位置将子小部件锚点插入文本缓冲区。

gtk_text_buffer_insert_interactive

buffer 中插入 text

gtk_text_buffer_insert_interactive_at_cursor

buffer 中插入 text

gtk_text_buffer_insert_markup

iter 位置插入 markup 中的文本。

gtk_text_buffer_insert_paintable

iter 位置将图像插入文本缓冲区。

gtk_text_buffer_insert_range

iter 处复制 startend 之间的文本、标记和可绘制内容。

gtk_text_buffer_insert_range_interactive

iter 处复制 startend 之间的文本、标记和可绘制内容。

gtk_text_buffer_insert_with_tags

iter 位置将 text 插入 buffer 中,并将标记列表应用于新插入的文本。

gtk_text_buffer_insert_with_tags_by_name

iter 位置将 text 插入 buffer 中,并将标记列表应用于新插入的文本。

gtk_text_buffer_move_mark

mark 移动到新位置 where

gtk_text_buffer_move_mark_by_name

将名为 name 的标记(必须存在)移动到位置 where

gtk_text_buffer_paste_clipboard

粘贴剪贴板内容。

gtk_text_buffer_place_cursor

此函数同时移动“插入”和“selection_bound”标记。

gtk_text_buffer_redo

如果有重做操作,则对缓冲区中的下一个可重做操作进行重做。

gtk_text_buffer_remove_all_tags

删除从 startend 范围内的所有标记。

gtk_text_buffer_remove_commit_notify

删除先前使用 gtk_text_buffer_add_commit_notify() 注册的 GtkTextBufferCommitNotify 处理程序。

since: 4.16

gtk_text_buffer_remove_selection_clipboard

删除使用 gtk_text_buffer_add_selection_clipboard() 添加的 GdkClipboard

gtk_text_buffer_remove_tag

触发“remove-tag”信号。

gtk_text_buffer_remove_tag_by_name

触发“remove-tag”信号。

gtk_text_buffer_select_range

此函数同时移动“插入”和“selection_bound”标记。

gtk_text_buffer_set_enable_undo

设置是否在文本缓冲区中启用可撤消操作。

gtk_text_buffer_set_max_undo_levels

设置可执行的最大撤消级别。

gtk_text_buffer_set_modified

用于跟踪缓冲区是否自上次保存以来已修改。

gtk_text_buffer_set_text

删除 buffer 的当前内容,以 text 代替。这会自动在撤消堆栈中标记为不可逆操作。如果您希望将此操作标记为更大撤消操作的一部分,请直接调用 gtk_text_buffer_delete()gtk_text_buffer_insert()

gtk_text_buffer_undo

如果有可撤消操作,则对缓冲区中的上一个可撤消操作进行撤消。

GObject 继承的方法(43)

请参阅 GObject 了解方法列表。

属性

Gtk.TextBuffer:can-redo

表示缓冲区可以重新应用上一个撤消的操作。

Gtk.TextBuffer:can-undo

表示缓冲区可以撤消上一个应用的操作。

Gtk.TextBuffer:cursor-position

插入标记的位置。

Gtk.TextBuffer:enable-undo

表示是否允许对缓冲区更改进行撤消和重做。

Gtk.TextBuffer:has-selection

表示缓冲区当前是否有选定的文本。

Gtk.TextBuffer:tag-table

缓冲区的 GtkTextTagTable。

Gtk.TextBuffer:text

缓冲区的文本内容。

信号

Gtk.TextBuffer::apply-tag

GtkTextBuffer 中对文本范围内的文本应用标记时发出。

Gtk.TextBuffer::begin-user-action

GtkTextBuffer 上的单个用户可见操作开始时发出。

Gtk.TextBuffer::changed

GtkTextBuffer 的内容发生变化时发出。

Gtk.TextBuffer::delete-range

GtkTextBuffer 中删除范围时发出。

Gtk.TextBuffer::end-user-action

GtkTextBuffer 上的单个用户可见操作结束时发出。

Gtk.TextBuffer::insert-child-anchor

发送以在 GtkTextBuffer 中插入一个 GtkTextChildAnchor

Gtk.TextBuffer::insert-paintable

发送以在 GtkTextBuffer 中插入一个 GdkPaintable

Gtk.TextBuffer::insert-text

发送以在 GtkTextBuffer 中插入文本。

Gtk.TextBuffer::mark-deleted

在删除 GtkTextMark 后作为通知发出。

Gtk.TextBuffer::mark-set

在设置 GtkTextMark 后作为通知发出。

Gtk.TextBuffer::modified-changed

GtkTextBuffer 的修改位翻转时发出。

Gtk.TextBuffer::paste-done

粘贴操作完成后发出。

Gtk.TextBuffer::redo

当一个请求重新执行之前撤销的操作时发出。

Gtk.TextBuffer::remove-tag

用于从 GtkTextBuffer 中文本的范围内移除所有 tag 的发生。

Gtk.TextBuffer::undo

当请求撤销前一个操作或操作组时发出。

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

当通过 g_object_set_property()、g_object_set() 等设置对象属性值时,发出通知信号。

类结构

struct GtkTextBufferClass {
  GObjectClass parent_class;
  void (* insert_text) (
    GtkTextBuffer* buffer,
    GtkTextIter* pos,
    const char* new_text,
    int new_text_length
  );
  void (* insert_paintable) (
    GtkTextBuffer* buffer,
    GtkTextIter* iter,
    GdkPaintable* paintable
  );
  void (* insert_child_anchor) (
    GtkTextBuffer* buffer,
    GtkTextIter* iter,
    GtkTextChildAnchor* anchor
  );
  void (* delete_range) (
    GtkTextBuffer* buffer,
    GtkTextIter* start,
    GtkTextIter* end
  );
  void (* changed) (
    GtkTextBuffer* buffer
  );
  void (* modified_changed) (
    GtkTextBuffer* buffer
  );
  void (* mark_set) (
    GtkTextBuffer* buffer,
    const GtkTextIter* location,
    GtkTextMark* mark
  );
  void (* mark_deleted) (
    GtkTextBuffer* buffer,
    GtkTextMark* mark
  );
  void (* apply_tag) (
    GtkTextBuffer* buffer,
    GtkTextTag* tag,
    const GtkTextIter* start,
    const GtkTextIter* end
  );
  void (* remove_tag) (
    GtkTextBuffer* buffer,
    GtkTextTag* tag,
    const GtkTextIter* start,
    const GtkTextIter* end
  );
  void (* begin_user_action) (
    GtkTextBuffer* buffer
  );
  void (* end_user_action) (
    GtkTextBuffer* buffer
  );
  void (* paste_done) (
    GtkTextBuffer* buffer,
    GdkClipboard* clipboard
  );
  void (* undo) (
    GtkTextBuffer* buffer
  );
  void (* redo) (
    GtkTextBuffer* buffer
  );
  void (* _gtk_reserved1) (
void
  );
  void (* _gtk_reserved2) (
void
  );
  void (* _gtk_reserved3) (
void
  );
  void (* _gtk_reserved4) (
void
  );
  
}

GtkTextBuffer 的类结构。

类成员
parent_class: GObjectClass

对象类结构需要放在第一位。

insert_text: void (* insert_text) ( GtkTextBuffer* buffer, GtkTextIter* pos, const char* new_text, int new_text_length )

GtkTextBuffer::insert-text 信号的类处理函数。

insert_paintable: void (* insert_paintable) ( GtkTextBuffer* buffer, GtkTextIter* iter, GdkPaintable* paintable )

GtkTextBuffer::insert-paintable 信号的类处理函数。

insert_child_anchor: void (* insert_child_anchor) ( GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextChildAnchor* anchor )

GtkTextBuffer::insert-child-anchor 信号的类处理函数。

delete_range: void (* delete_range) ( GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end )

GtkTextBuffer::delete-range 信号的类处理函数。

changed: void (* changed) ( GtkTextBuffer* buffer )

GtkTextBuffer::changed 信号的类处理函数。

modified_changed: void (* modified_changed) ( GtkTextBuffer* buffer )

GtkTextBuffer::modified-changed 信号的类处理函数。

mark_set: void (* mark_set) ( GtkTextBuffer* buffer, const GtkTextIter* location, GtkTextMark* mark )

GtkTextBuffer::mark-set 信号的类处理函数。

mark_deleted: void (* mark_deleted) ( GtkTextBuffer* buffer, GtkTextMark* mark )

GtkTextBuffer::mark-deleted 信号的类处理函数。

apply_tag: void (* apply_tag) ( GtkTextBuffer* buffer, GtkTextTag* tag, const GtkTextIter* start, const GtkTextIter* end )

GtkTextBuffer::apply-tag 信号的类处理函数。

remove_tag: void (* remove_tag) ( GtkWidget* buffer, GtkTextTag* tag, const GtkTextIter* start, const GtkTextIter* end )

GtkTextBuffer::remove-tag 信号的类处理函数。

begin_user_action: void (* begin_user_action) ( GtkTextBuffer* buffer )

GtkTextBuffer::begin-user-action 信号的类处理函数。

end_user_action: void (* end_user_action) ( GtkTextBuffer* buffer )

GtkTextBuffer::end-user-action 信号的类处理函数。

paste_done: void (* paste_done) ( GtkTextBuffer* buffer, GdkClipboard* clipboard )

GtkTextBuffer::paste-done 信号的类处理函数。

undo: void (* undo) ( GtkTextBuffer* buffer )

GtkTextBuffer::undo 信号的类处理函数。

redo: void (* redo) ( GtkTextBuffer* buffer )

GtkTextBuffer::redo 信号的类处理函数。

_gtk_reserved1: void (* _gtk_reserved1) ( void )

无描述可提供。

_gtk_reserved2: void (* _gtk_reserved2) ( void )

无描述可提供。

_gtk_reserved3: void (* _gtk_reserved3) (void)

无描述可提供。

_gtk_reserved4: void (* _gtk_reserved4) (void)

无描述可提供。

虚方法

Gtk.TextBufferClass.apply_tag

buffer 上发出“apply-tag”信号。

Gtk.TextBufferClass.begin_user_action

调用以表明从这里到调用 gtk_text_buffer_end_user_action() 的缓冲区操作是单个用户可见操作的组成部分。

Gtk.TextBufferClass.changed

GtkTextBuffer::changed 信号的类处理函数。

Gtk.TextBufferClass.delete_range

GtkTextBuffer::delete-range 信号的类处理函数。

Gtk.TextBufferClass.end_user_action

结束一个用户可见的操作。

Gtk.TextBufferClass.insert_child_anchor

iter 位置将子小部件锚点插入文本缓冲区。

Gtk.TextBufferClass.insert_paintable

iter 位置将图像插入文本缓冲区。

Gtk.TextBufferClass.insert_text

GtkTextBuffer::insert-text 信号的类处理函数。

Gtk.TextBufferClass.mark_deleted

GtkTextBuffer::mark-deleted 信号的类处理函数。

Gtk.TextBufferClass.mark_set

GtkTextBuffer::mark-set 信号的类处理函数。

Gtk.TextBufferClass.modified_changed

GtkTextBuffer::modified-changed 信号的类处理函数。

Gtk.TextBufferClass.paste_done

GtkTextBuffer::paste-done 信号的类处理函数。

Gtk.TextBufferClass.redo

如果有重做操作,则对缓冲区中的下一个可重做操作进行重做。

Gtk.TextBufferClass.remove_tag

触发“remove-tag”信号。

Gtk.TextBufferClass.undo

如果有可撤消操作,则对缓冲区中的上一个可撤消操作进行撤消。