GtkGrid

描述 [src]

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

GtkGrid 是按行、按列排列其子小组件的容器。

An example GtkGrid

它支持任意位置和水平/垂直跨度。

使用 gtk_grid_attach() 添加子元素。它们可以跨多行或多列。也可以使用 gtk_grid_attach_next_to() 在现有子元素旁边添加子元素。要从网格中移除子元素,请使用 gtk_grid_remove()

当多个子元素占据相同的网格单元格时,GtkGrid 的行为是不确定的。

GtkGrid 作为 GtkBuildable

GtkGrid 中的每个子元素都可以访问名为 <layout> 的自定义 GtkBuildable 元素。它可以用于指定网格中的位置和跨度(可选)。<layout> 元素中可用的所有属性均由 GtkGridLayoutChild 实现。

它由 GtkWidget 使用 GtkLayoutManager 实现。

接下来是一个简单示例,以展示其用法

<object class="GtkGrid" id="my_grid">
  <child>
    <object class="GtkButton" id="button1">
      <property name="label">Button 1</property>
      <layout>
        <property name="column">0</property>
        <property name="row">0</property>
      </layout>
    </object>
  </child>
  <child>
    <object class="GtkButton" id="button2">
      <property name="label">Button 2</property>
      <layout>
        <property name="column">1</property>
        <property name="row">0</property>
      </layout>
    </object>
  </child>
  <child>
    <object class="GtkButton" id="button3">
      <property name="label">Button 3</property>
      <layout>
        <property name="column">2</property>
        <property name="row">0</property>
        <property name="row-span">2</property>
      </layout>
    </object>
  </child>
  <child>
    <object class="GtkButton" id="button4">
      <property name="label">Button 4</property>
      <layout>
        <property name="column">0</property>
        <property name="row">1</property>
        <property name="column-span">2</property>
      </layout>
    </object>
  </child>
</object>

它以并排的方式在每个单元格中组织前两个按钮。第三个按钮位于最后一列,但跨两行。这由 row-span 属性定义。最后一个按钮位于第二行,并且跨两列,这由 column-span 属性定义。

CSS 节点

GtkGrid 使用名称为 grid 的单个 CSS 节点。

辅助功能

直到 GTK 4.10,GtkGrid 使用 GTK_ACCESSIBLE_ROLE_GROUP 角色。

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

层级

hierarchy this GtkGrid implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkConstraintTarget this--implements_2 implements_3 GtkOrientable this--implements_3 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

构造函数

gtk_grid_new

创建一个新的网格小组件。

实例方法

gtk_grid_attach

将小组件添加到网格中。

gtk_grid_attach_next_to

将小组件添加到网格中。

gtk_grid_get_baseline_row

返回定义 grid 全局基线的行。

gtk_grid_get_child_at

获取其区域覆盖 column, row 网格单元的 grid 子组件。

gtk_grid_get_column_homogeneous

返回 grid 的所有列是否具有相同的宽度。

gtk_grid_get_column_spacing

返回 grid 的列之间的空间量。

gtk_grid_get_row_baseline_position

返回 row 的基线位置。

gtk_grid_get_row_homogeneous

返回 grid 的所有行是否具有相同的高度。

gtk_grid_get_row_spacing

返回 grid 的行之间的空间量。

gtk_grid_insert_column

在指定位置插入列。

gtk_grid_insert_next_to

在指定位置插入行或列。

gtk_grid_insert_row

在指定位置插入行。

gtk_grid_query_child

查询给定的 GtkGridchild 的附加点和跨度。

gtk_grid_remove

grid 中移除子组件。

gtk_grid_remove_column

从网格中移除列。

gtk_grid_remove_row

从网格中移除行。

gtk_grid_set_baseline_row

设置定义整个网格全局基线的行。

gtk_grid_set_column_homogeneous

设置 grid 的所有列是否具有相同的宽度。

gtk_grid_set_column_spacing

设置 grid 列之间的空间量。

gtk_grid_set_row_baseline_position

如果给定行被分配的空间比请求的空间多,则设置应该如何在网格的 row 上放置基线。

gtk_grid_set_row_homogeneous

设置 grid 的所有行是否具有相同的高度。

gtk_grid_set_row_spacing

设置 grid 的行之间的空间量。

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

检索某个可访问对象的 accessible 角色。

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

GtkOrientable (2) 继承的方法
gtk_orientable_get_orientation

检索 orientable 的方向。

gtk_orientable_set_orientation

设置 orientable 的方向。

Properties

Gtk.Grid:baseline-row

当 valign 使用 baseline 对齐时对齐到基线的行。

Gtk.Grid:column-homogeneous

如果 TRUE,则列的宽度都相同。

Gtk.Grid:column-spacing

两列连续之间的空格量。

Gtk.Grid:row-homogeneous

如果 TRUE,则行的宽度都相同。

Gtk.Grid:row-spacing

两行连续之间的空格量。

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

GtkOrientable(1)继承的属性
GtkOrientable:orientation

可定向组件的方向。

信号

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 信号。

类结构

struct GtkGridClass {
  GtkWidgetClass parent_class;
  
}

无可用描述。

类成员
parent_class: GtkWidgetClass

父类。