GtkSizeGroup

说明 [src]

final class Gtk.SizeGroup : GObject.Object
  implements Gtk.Buildable {
  /* No available fields */
}

GtkSizeGroup 将窗口小部件分组到一起,以便它们都请求相同的 size。

当您希望窗口小部件的列具有相同的大小但又无法使用 GtkGrid 时,此方法通常非常有用。

具体而言,GtkSizeGroup 中每个窗口小部件请求的大小是大小组中每个窗口小部件的大小请求的最大值,前提是这些窗口小部件不在大小组中。大小组的模式(参见 gtk_size_group_set_mode())确定这是否适用于水平大小、垂直大小或这两个 size。

请注意,大小组仅影响所请求的空间量,而不影响窗口小部件最终接收的大小。如果您希望 GtkSizeGroup 中的窗口小部件实际具有相同的大小,则需要以一种方式打包这些窗口小部件,以便它们获取其请求的大小,而不是更大。

大小组由大小组中的每个窗口小部件引用,因此一旦将所有窗口小部件添加到 GtkSizeGroup,就可以通过 g_object_unref() 放弃大小组的初始引用。如果大小组中的窗口小部件随后被销毁,则它们将从大小组中删除并放弃对大小组的引用;当所有窗口小部件都被删除后,大小组将被 freed。

窗口小部件可以属于多个大小组;GTK 将通过计算链式大小组中所有窗口小部件的水平请求值(其类型为 GTK_SIZE_GROUP_HORIZONTALGTK_SIZE_GROUP_BOTH)来计算窗口小部件的水平大小,并通过计算链式大小组中所有窗口小部件的垂直请求值(其类型为 GTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTH)来计算垂直大小。

请注意,大小组只会咨询每个窗口小部件的非关联大小(因为大小组不知道窗口小部件在一个维度上将分配的大小,因此它无法推导窗口小部件在给定宽度下将接收多少高度)。在使用 GTK_SIZE_GROUP_VERTICALGTK_SIZE_GROUP_BOTH 模式对窗口小部件进行水平分组时:组中所有窗口小部件的最小宽度的高度将是请求的高度。在水平分组高度宽度窗口小部件时也是如此。

进行高度换宽度交易的窗口小部件应通过 GtkLabel:width-chars 设置合理的大最小宽度。具有静态大小的窗口小部件以及不断增长的窗口小部件(例如省略号化文本)不需要考虑这一点。

GtkSizeGroup 作为 GtkBuildable

可以在 UI 定义中通过在 UI 定义中的某个位置放置一个 <object> 元素(其中 class="GtkSizeGroup")来指定大小组。组成大小组的窗口小部件通过 <widgets> 元素指定,该元素可能包含多个 <widget> 元素,每个元素对应于大小组中的一个成员。 ”name” 属性提供窗口小部件的 id 。

包含 GtkSizeGroupUI 定义片段示例

<object class="GtkSizeGroup">
  <property name="mode">horizontal</property>
  <widgets>
    <widget name="radio1"/>
    <widget name="radio2"/>
  </widgets>
</object>

层级

hierarchy this GtkSizeGroup implements_0 GtkBuildable this--implements_0 ancestor_0 GObject ancestor_0--this

祖先

实现

构造函数

gtk_size_group_new

创建新的 GtkSizeGroup

实例方法

gtk_size_group_add_widget

将小组件添加到 GtkSizeGroup

gtk_size_group_get_mode

获取尺寸组的当前模式。

gtk_size_group_get_widgets

返回与 size_group 关联的小组件列表。

gtk_size_group_remove_widget

GtkSizeGroup 中移除小组件。

gtk_size_group_set_mode

设置尺寸组的 GtkSizeGroupMode

GObject (43) 继承的方法

有关方法的完整列表,请参阅 GObject

GtkBuildable (1) 继承的方法
gtk_buildable_get_buildable_id

获取 buildable 对象的 ID。

属性

Gtk.SizeGroup:mode

尺寸组影响请求尺寸的方向。

信号

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

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