类
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-policy
和 GtkScrolledWindow:vscrollbar-policy
为 GTK_POLICY_NEVER
或 GTK_POLICY_EXTERNAL
,否则 GtkScrolledWindow
会围绕其子项添加内部 GtkScrollbar
小组件。子项和滚动条(如果适用)的滚动位置由与 GtkScrolledWindow
关联的 GtkScrolledWindow:hadjustment
和 GtkScrolledWindow: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-frame
为 TRUE
时,它会添加一个 .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
角色。
实例方法
从 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)继承的方法
属性
从 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)继承的属性
信号
从 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() 等方法设置对象某个属性的值。