GtkScrolledWindow

说明 [src]

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

GtkScrolledWindow 是一个容器,使它的子内容可滚动。

它使用内部添加的滚动条或外部关联的调整来执行此操作,并且可以选择在子内容周围绘制一个框架。

支持本机滚动功能的小组件,即其类实现了 GtkScrollable 接口,将直接添加。对于其他类型的组件,GtkViewport 类充当适配器,使得其他组件具有滚动性。 gtk_scrolled_window_set_child() 会智能地检测添加的子项是否是 GtkScrollable。如果不是,它会将子项包装在 GtkViewport 中。因此,您只需添加任何子项小组件,无需担心详情。

如果 gtk_scrolled_window_set_child() 为您添加了 GtkViewport,那么当您取消设置子项时,它将自动删除。除非 GtkScrolledWindow:hscrollbar-policyGtkScrolledWindow:vscrollbar-policyGTK_POLICY_NEVERGTK_POLICY_EXTERNAL,否则 GtkScrolledWindow 会围绕其子项添加内部 GtkScrollbar 小组件。子项和滚动条(如果适用)的滚动位置由与 GtkScrolledWindow 关联的 GtkScrolledWindow:hadjustmentGtkScrolledWindow:vadjustment 控制。关于该功能的详细信息请参阅 GtkScrollbar 的相关文档,但请注意,“step_increment”和“page_increment”字段仅在策略导致存在滚动条时才有效。

如果 GtkScrolledWindow 的行为与您的预期不符,或者布局不完全正确,完全可以使用 GtkScrollbar 和例如 GtkGrid 设置滚动。

触控支持

GtkScrolledWindow 内置了对触控设备的支持。使用触摸屏时,滑动将移动滚动窗口,并呈现“动能”行为。如果不需要这种行为,可以使用 GtkScrolledWindow:kinetic-scrolling 属性关闭它。

当内容被拉出末端时,GtkScrolledWindow 还会显示视觉“超调”指示,可以通过 GtkScrolledWindow::edge-overshot 信号捕获此情况。

如果没有鼠标设备,滚动条将以窄边框的形式叠加在内容上,并自动隐藏。如果希望使用传统的滚动条,但没有鼠标,可以使用 GtkScrolledWindow:overlay-scrolling 属性关闭此行为。

快捷方式和手势

以下信号具有默认快捷键

CSS 节点

GtkScrolledWindow 有一个名称为 scrolledwindow 的主 CSS 节点。当 GtkScrolledWindow:has-frameTRUE 时,它会添加一个 .frame 样式类。

它使用名称为 overshoot 和 undershoot 的子节点绘制溢出和欠流指示。这些节点会添加 .left、.right、.top 或 .bottom 样式类,具体取决于指示绘制的位置。

GtkScrolledWindow 还会在滚动条上设置位置样式类(.left、.right、.top、.bottom)和与叠加滚动相关的样式类(.overlay-indicator、.dragging、.hovering)。

如果两个滚动条都可见,它们相遇的区域将用名称为 junction 的子节点绘制。

可访问性

GTK 4.10 之前,GtkScrolledWindow 使用了 GTK_ACCESSIBLE_ROLE_GROUP 角色。

GTK 4.12 开始,GtkScrolledWindow 使用 GTK_ACCESSIBLE_ROLE_GENERIC 角色。

层次结构

hierarchy this GtkScrolledWindow 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_scrolled_window_new

创建一个新的滚动窗口。

实例方法

gtk_scrolled_window_get_child

获取 scrolled_window 的子小部件。

gtk_scrolled_window_get_hadjustment

返回水平滚动条的调整。

gtk_scrolled_window_get_has_frame

获取滚动窗口是否绘制一个框架。

gtk_scrolled_window_get_hscrollbar

返回 scrolled_window 的水平滚动条。

gtk_scrolled_window_get_kinetic_scrolling

返回指定的动能滚动行为。

gtk_scrolled_window_get_max_content_height

返回设置的最大内容高度。

gtk_scrolled_window_get_max_content_width

返回设置的最大内容宽度。

gtk_scrolled_window_get_min_content_height

获取 scrolled_window 的最小内容高度。

gtk_scrolled_window_get_min_content_width

获取 scrolled_window 的最小内容宽度。

gtk_scrolled_window_get_overlay_scrolling

返回此滚动窗口是否启用了覆盖滚动。

gtk_scrolled_window_get_placement

获取内容相对于滚动条的位置。

gtk_scrolled_window_get_policy

检索水平和垂直滚动条的当前策略值。

gtk_scrolled_window_get_propagate_natural_height

报告是否计算子级的自然高度并通过滚动窗口的请求自然高度进行传播。

gtk_scrolled_window_get_propagate_natural_width

报告是否计算子级的自然宽度并通过滚动窗口的请求自然宽度进行传播。

gtk_scrolled_window_get_vadjustment

返回垂直滚动条的调整。

gtk_scrolled_window_get_vscrollbar

返回 scrolled_window 的垂直滚动条。

gtk_scrolled_window_set_child

设置 scrolled_window 的子小部件。

gtk_scrolled_window_set_hadjustment

为水平滚动条设置 GtkAdjustment

gtk_scrolled_window_set_has_frame

更改 scrolled_window 内容周围绘制的框架。

gtk_scrolled_window_set_kinetic_scrolling

开启或关闭动能滚动。

gtk_scrolled_window_set_max_content_height

设置 scrolled_window 应保持可见的最大高度。

gtk_scrolled_window_set_max_content_width

设置 scrolled_window 应保持可见的最大宽度。

gtk_scrolled_window_set_min_content_height

设置 scrolled_window 应保持可见的最小高度。

gtk_scrolled_window_set_min_content_width

设置 scrolled_window 应保持可见的最小宽度。

gtk_scrolled_window_set_overlay_scrolling

为这个滚动窗口启用或禁用覆盖滚动。

gtk_scrolled_window_set_placement

设置滚动窗口的内容相对于滚动条的位置。

gtk_scrolled_window_set_policy

设置水平和垂直滚动条的滚动条策略。

gtk_scrolled_window_set_propagate_natural_height

设置是否计算子级的自然高度并通过滚动窗口的请求自然高度进行传播。

gtk_scrolled_window_set_propagate_natural_width

设置是否计算子项的自然宽度并通过滚动窗口的请求自然宽度进行传播。

gtk_scrolled_window_set_vadjustment

设置垂直滚动条的GtkAdjustment

gtk_scrolled_window_unset_placement

取消相对于滚动条的内容放置。

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

更新无障碍 状态数组。

GtkBuildable(1)继承的方法
gtk_buildable_get_buildable_id

获取buildable对象的ID

属性

Gtk.ScrolledWindow:child

子项 窗口小部件。

Gtk.ScrolledWindow:hadjustment

用于水平 位置的 GtkAdjustment

Gtk.ScrolledWindow:has-frame

在的内容周围绘制是否 框架。

Gtk.ScrolledWindow:hscrollbar-policy

水平滚动条何时 显示。

Gtk.ScrolledWindow:kinetic-scrolling

动力滚动是否 启用。

Gtk.ScrolledWindow:max-content-height

scrolled_window的最大内容 高度。

Gtk.ScrolledWindow:max-content-width

scrolled_window的最大内容 宽度。

Gtk.ScrolledWindow:min-content-height

scrolled_window的最小内容 高度。

Gtk.ScrolledWindow:min-content-width

scrolled_window的最小内容 宽度。

Gtk.ScrolledWindow:overlay-scrolling

覆盖滚动是否 启用。

Gtk.ScrolledWindow:propagate-natural-height

是否计算子项的自然高度并通过滚动窗口的请求自然高度进行传播。

Gtk.ScrolledWindow:propagate-natural-width

是否计算子项的自然宽度并通过滚动窗口的请求自然宽度进行传播。

Gtk.ScrolledWindow:vadjustment

用于垂直 位置的 GtkAdjustment

Gtk.ScrolledWindow:vscrollbar-policy

垂直滚动条何时 显示。

Gtk.ScrolledWindow:window-placement

内容相对于 滚动条的位置。

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

启用或禁用 GtkWidget::query-tooltip 信号在 widget 上的发送。

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

信号

Gtk.ScrolledWindow::edge-overshot

每当用户发起的滚动使滚动窗口坚决超过由该方向中的调整所定义的限制时发出。

Gtk.ScrolledWindow::edge-reached

每当用户发起的滚动使滚动窗口确切地达到由该方向中的调整所定义的下部或上部限制时发出。

Gtk.ScrolledWindow::move-focus-out

通过按键绑定使焦点移出滚动窗口时触发。

Gtk.ScrolledWindow::scroll-child

按下可滚动按键绑定时触发。

GtkWidget 继承的信号(13)
GtkWidget::destroy

持有对 widget 引用内容的所有者应该释放其持有的引用。

GtkWidget::direction-changed

widget 文本方向更改时触发。

GtkWidget::hide

widget 被隐藏时触发。

GtkWidget::keynav-failed

键盘导航失败时触发。

GtkWidget::map

widget 将要被映射时触发。

GtkWidget::mnemonic-activate

widget 通过辅助功能激活时触发。

GtkWidget::move-focus

焦点移出时触发。

GtkWidget::query-tooltip

widget 的工具提示即将显示时触发。

GtkWidget::realize

widget 与 GdkSurface 关联时触发。

GtkWidget::show

widget 被显示时触发。

GtkWidget::state-flags-changed

widget 状态变化时触发。

GtkWidget::unmap

widget 将要取消映射时触发。

GtkWidget::unrealize

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

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

触发 notify 信号时通过 g_object_set_property()、g_object_set() 等方法设置对象某个属性的值。