Gtk笔记本

描述 [src]

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

GtkNotebook 是一种容器,用户可以用标签在子项页面间切换。

An example GtkNotebook

GtkNotebook 有许多配置选项。除了其他选项之外,您还可以选择标签显示在哪条边上(参见 gtk_notebook_set_tab_pos()),如果标签太多而放不下,是将笔记本做得更大还是添加滚动箭头(参见 gtk_notebook_set_scrollable()),以及是否会有允许用户切换页面的弹出菜单。(参见 gtk_notebook_popup_enable())。

作为 GtkBuildable 的 GtkNotebook

GtkNotebookGtkBuildable 接口的实现支持将子项放入标签中,方法是将“标签”指定为 <child> 元素的“类型”属性。请注意,必须先创建标签的内容,才能填充标签。可以指定一个标签子项,而不指定 <child> 类型属性。

要在笔记本操作区域中添加一个子项小组件,请将“操作开始”或“操作结束”指定为 <child> 元素的“类型”属性。

带有 GtkNotebookUI 定义片段示例

<object class="GtkNotebook">
  <child>
    <object class="GtkLabel" id="notebook-content">
      <property name="label">Content</property>
    </object>
  </child>
  <child type="tab">
    <object class="GtkLabel" id="notebook-tab">
      <property name="label">Tab</property>
    </object>
  </child>
</object>

快捷方式和手势

GtkNotebook 支持以下键盘快捷方式

  • Shift+F10Menu 打开上下文菜单。
  • Home 将焦点移至第一个标签。
  • End 将焦点移至最后一个标签。

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

标签支持在具有相同 group-name 的笔记本之间拖放,或者通过处理 ::create-window 信号来拖放到新窗口。

操作

GtkNotebook 定义了一组内置操作

  • menu.popup 打开选项卡上下文菜单。

CSS 节点

notebook
├── header.top
│   ├── [<action widget>]
│   ├── tabs
│   │   ├── [arrow]
│   │   ├── tab
│   │   │   ╰── <tab label>
┊   ┊   ┊
│   │   ├── tab[.reorderable-page]
│   │   │   ╰── <tab label>
│   │   ╰── [arrow]
│   ╰── [<action widget>]
│
╰── stack
    ├── <child>
    ┊
    ╰── <child>

GtkNotebook 有一个名称为 notebook 的主 CSS 节点,一个名称为 header 的子节点,以及在其下面一个名称为 tabs 的子节点,其中包含一个名称为 tab 的每个选项卡的子节点。

如果存在操作小组件,它们的 CSS 节点将放置在 tabs 节点的旁边。如果笔记本是可以滚动的,名称为 arrowCSS 节点将作为 tabs 节点的第一个和最后一个子项放置。

当笔记本有边框时(请参阅 gtk_notebook_set_show_border()),主节点获取 .frame 样式类。

根据标签放置的位置,头节点获取 .top.bottom.left.right 之一作为样式类。对于可重新排序的页面,标签节点获取 .reorderable-page 类。

tab 节点在通过拖放移动时获取 .dnd 样式类。

无论文本方向如何,这些节点总是从左到右排列。

辅助功能

GtkNotebook 使用以下角色

  • GTK_ACCESSIBLE_ROLE_GROUP 用于笔记本小组件
  • GTK_ACCESSIBLE_ROLE_TAB_LIST 用于标签列表
  • GTK_ACCESSIBLE_ROLE_TAB 角色用于每个标签
  • GTK_ACCESSIBLE_ROLE_TAB_PANEL 用于每页。

层次结构

hierarchy this GtkNotebook implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

构造函数

gtk_notebook_new

创建一个不含任何页面的新 GtkNotebook 小组件。

实例方法

gtk_notebook_append_page

将一个页面添加到 notebook

gtk_notebook_append_page_menu

将一个页面添加到 notebook,并指定在弹出菜单中用作标签的小组件。

gtk_notebook_detach_tab

从笔记本中移除子组件。

gtk_notebook_get_action_widget

获取一个动作小组件。

gtk_notebook_get_current_page

返回当前页面的页码。

gtk_notebook_get_group_name

获取 notebook 当前的组名称。

gtk_notebook_get_menu_label

获取包含 child 的页面菜单标签小组件。

gtk_notebook_get_menu_label_text

获取包含 child 的页面菜单标签文本。

gtk_notebook_get_n_pages

获取笔记本中的页面数量。

gtk_notebook_get_nth_page

返回页号为 page_num 的子小组件。

gtk_notebook_get_page

返回 childGtkNotebookPage

gtk_notebook_get_pages

返回包含笔记本页面的 GListModel

gtk_notebook_get_scrollable

返回标签区域是否有滚动箭头。

gtk_notebook_get_show_border

返回是否将在笔记本页面周围绘制斜角。

gtk_notebook_get_show_tabs

返回是否显示笔记本的标签页。

gtk_notebook_get_tab_detachable

返回是否可以将标签内容从 notebook 中分离出来。

gtk_notebook_get_tab_label

返回页面 child 的标签小组件。

gtk_notebook_get_tab_label_text

获取包含 child 的页面的标签文本。

gtk_notebook_get_tab_pos

获取标签绘制所在的边缘。

gtk_notebook_get_tab_reorderable

获取是否可以通过拖放重新排序选项卡。

gtk_notebook_insert_page

在给定位置将一个页面插入 notebook 中。

gtk_notebook_insert_page_menu

在给定位置将一个页面插入 notebook 中,并指定在弹出菜单中用作标签的小组件。

gtk_notebook_next_page

切换到下一页。

gtk_notebook_page_num

查找包含给定子小组件的页面的索引。

gtk_notebook_popup_disable

禁用弹出菜单。

gtk_notebook_popup_enable

启用弹出菜单。

gtk_notebook_prepend_page

notebook 前面添加一个页面。

gtk_notebook_prepend_page_menu

notebook 前面添加一个页面,并指定用作弹出菜单标签的小组件。

gtk_notebook_prev_page

切换到上一页。

gtk_notebook_remove_page

从笔记本中移除一个页面,给定其在笔记本中的索引。

gtk_notebook_reorder_child

重新排序包含 child 的页面,使其显示在位置 position 处。

gtk_notebook_set_action_widget

widget 设置为动作小组件之一。

gtk_notebook_set_current_page

切换到页号为 page_num 的页面。

gtk_notebook_set_group_name

notebook 设置组名称。

gtk_notebook_set_menu_label

更改包含 child 的页面的菜单标签。

gtk_notebook_set_menu_label_text

创建新的标签,并将其设置为 child 的菜单标签。

gtk_notebook_set_scrollable

设置超出了区域容纳容量时标签区域是否带滚动箭头。

gtk_notebook_set_show_border

设置笔记本页面周围是否绘制斜角边框。

gtk_notebook_set_show_tabs

设置是否显示笔记本标签。

gtk_notebook_set_tab_detachable

设置标签是否可以从“笔记本”分离到另一个笔记本或窗口小部件中。

gtk_notebook_set_tab_label

更改“子级”的标签。

gtk_notebook_set_tab_label_text

创建新标签并将其设置为包含“子级”的页面的标签。

gtk_notebook_set_tab_pos

设置标签的绘制位置。

gtk_notebook_set_tab_reorderable

设置笔记本标签是否可以通过拖放的方式重新排序。

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

获取IDbuildable 对象。

属性

Gtk.Notebook:enable-popup

如果为 TRUE,则在笔记本上按鼠标右键将显示页面切换菜单。

Gtk.Notebook:group-name

标签拖放的分组名称。

Gtk.Notebook:page

当前页面的索引。

Gtk.Notebook:pages

具有页面的选择模型。

Gtk.Notebook:scrollable

如果为 TRUE,则如果页面过多而无法容纳,则会添加滚动箭头。

Gtk.Notebook:show-border

是否应该显示边框。

Gtk.Notebook:show-tabs

是否应该显示选项卡。

Gtk.Notebook:tab-pos

笔记本的哪一侧包含选项卡。

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

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

Gtk.Widget:can-target

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

Gtk.Widget:css-classes

应用于此小部件的一系列 css 类。

Gtk.Widget:css 样式名称

这个控件在 CSS 树中的名称。

Gtk.Widget:光标

代码块使用的光标。

Gtk.Widget:点击即可获得焦点

当用鼠标点击小组件时,小组件是否应该获得焦点。

Gtk.Widget:可获得焦点

此小组件本身是否会接收输入焦点。

Gtk.Widget:水平对齐

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

Gtk.Widget:是否有默认值

小组件是否是默认小组件。

Gtk.Widget:是否有焦点

小组件是否具有输入焦点。

Gtk.Widget:是否有工具提示

启用或禁用对小组件上 GtkWidget::query-tooltip 信号的发送。

Gtk.Widget:高度要求

小组件高度要求的覆盖项。

Gtk.Widget:水平扩展

是否水平扩展。

Gtk.Widget:水平扩展设置

是否使用 hexpand 属性。

Gtk.Widget:布局管理器

要用于计算小组件的首选大小并分配其子项的 GtkLayoutManager 实例。

Gtk.Widget:下边距

小组件底侧的边距。

Gtk.Widget:末尾边距

水平方向上小组件末尾的边距。

Gtk.Widget:起始边距

水平方向上小组件起始处的边距。

Gtk.Widget:上边距

小组件顶侧的边距。

Gtk.Widget:名称

小组件的名称。

Gtk.Widget:不透明度

小组件请求的不透明度。

Gtk.Widget:溢出

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

Gtk.Widget:父级

此小组件的父小组件。

Gtk.Widget:接收默认值

小组件聚焦后是否接收默认操作。

Gtk.Widget:根级

包含此小组件的小组件树的 GtkRoot 小组件。

Gtk.Widget:缩放系数

小组件的缩放系数。

Gtk.Widget:灵敏

小组件是否对输入做出响应。

Gtk.Widget:工具提示标记

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

Gtk.Widget:工具提示文本

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

Gtk.Widget:垂直对齐

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

Gtk.Widget:垂直扩展

是否垂直扩展。

Gtk.Widget:垂直扩展设置

是否使用 vexpand 属性。

Gtk.Widget:可见

小组件是否可见。

Gtk.Widget:宽度要求

小组件宽度要求的覆盖项。

GtkAccessible (1) 继承的属性
GtkAccessible:辅助角色

GtkAccessible 实现的辅助角色。

信号

Gtk.Notebook::更改当前页面

在应该更改当前页面时发出。

Gtk.Notebook::创建窗口

当可分离标签被放到 root 窗口上时,会发出 ::create-window 信号。

Gtk.Notebook::聚焦标签

在应该聚焦某个标签时发出。

Gtk.Notebook::移动焦点到外侧

当焦点移到外侧时发出。

Gtk.Notebook::页面添加

在将页面添加到笔记本电脑之后,笔记本电脑中会发出 ::page-added 信号。

Gtk.Notebook::页面移除

在从笔记本电脑中删除页面之后,笔记本电脑中会发出 ::page-removed 信号。

Gtk.Notebook::页面重新排序

在重新对页面排序之后,笔记本电脑中会发出 ::page-reordered 信号。

Gtk.Notebook::重新排序标签

当应该重新对标签排序时发出。

Gtk.Notebook::选择页面

在应该选择某个页面时发出。

Gtk.Notebook::switch-page

当用户或函数更改当前页时触发。

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()等设置其值时,会发出notify信号。