查看源代码 wxFlexGridSizer (wx v2.4.3)

弹性网格布局器是一种布局器,它将其子项布置在一个二维表格中,表格中同一行的所有字段具有相同的高度,同一列的所有字段具有相同的宽度,但是所有行或所有列的高度或宽度不一定像 wxGridSizer 那样相同。

从 wxWidgets 2.5.0 开始,wxFlexGridSizer 也可以在一个方向上均匀调整项目大小,而在另一个方向上不均匀(“弹性”)调整。 如果布局器仅在一个方向上是弹性的(可以使用 setFlexibleDirection/2 更改),则需要决定布局器如何在另一个(“非弹性”)方向上增长以填充可用空间。 setNonFlexibleGrowMode/2 方法用于此目的。

参见

此类派生自以下类,并可以使用其函数:

wxWidgets 文档: wxFlexGridSizer

概要

函数

指定如果布局器有额外的可用空间,则应增长索引为 idx (从零开始)的列。

指定如果布局器有额外的可用空间,则应增长索引为 idx (从零开始)的行。

销毁对象

返回一个 ?wxOrientation 值,该值指定布局器是灵活地调整其列、行还是两者(默认)。

返回一个值,该值指定如果存在“非弹性”方向,布局器在该方向上如何增长。

等效于 new(Cols, [])

指定不再增长索引为 idx 的列。

指定不再增长索引为 idx 的行。

指定布局器是否应灵活地调整其列、行或两者的大小。

指定如果存在非弹性方向,布局器应如何在非弹性方向上增长(因此必须先前调用过 setFlexibleDirection/2)。

类型

-type wxFlexGridSizer() :: wx:wx_object().

函数

此函数的链接

addGrowableCol(This, Idx)

查看源代码
-spec addGrowableCol(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().

等效于 addGrowableCol(This, Idx, [])

-spec addGrowableCol(This, Idx, [Option]) -> ok
                        when
                            This :: wxFlexGridSizer(),
                            Idx :: integer(),
                            Option :: {proportion, integer()}.

指定如果布局器有额外的可用空间,则应增长索引为 idx (从零开始)的列。

proportion 参数的含义与布局器的伸缩因子相同(请参见 wxBoxSizer),但如果所有比例均为 0,则所有列将均等调整大小(而不是根本不调整大小)。

请注意,该列必须尚未是可增长的,如果需要更改比例,则必须先调用 removeGrowableCol/2,然后再使其再次增长(使用不同的比例)。 你可以使用 IsColGrowable() (在 wx 中未实现)来检查列是否已经可增长。

此函数的链接

addGrowableRow(This, Idx)

查看源代码
-spec addGrowableRow(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().

等效于 addGrowableRow(This, Idx, [])

-spec addGrowableRow(This, Idx, [Option]) -> ok
                        when
                            This :: wxFlexGridSizer(),
                            Idx :: integer(),
                            Option :: {proportion, integer()}.

指定如果布局器有额外的可用空间,则应增长索引为 idx (从零开始)的行。

这与 addGrowableCol/3 相同,不同之处在于它处理的是行而不是列。

-spec destroy(This :: wxFlexGridSizer()) -> ok.

销毁对象

此函数的链接

getFlexibleDirection(This)

查看源代码
-spec getFlexibleDirection(This) -> integer() when This :: wxFlexGridSizer().

返回一个 ?wxOrientation 值,该值指定布局器是灵活地调整其列、行还是两者(默认)。

返回:以下值之一

  • wxVERTICAL:行的大小是可弹性调整的。

  • wxHORIZONTAL:列的大小是可弹性调整的。

  • wxBOTH:行和列的大小都是可弹性调整的(这是默认值)。

参见: setFlexibleDirection/2

此函数的链接

getNonFlexibleGrowMode(This)

查看源代码
-spec getNonFlexibleGrowMode(This) -> wx:wx_enum() when This :: wxFlexGridSizer().

返回一个值,该值指定如果存在“非弹性”方向,布局器在该方向上如何增长。

在弹性方向(即默认情况下是行和列,如果 getFlexibleDirection/1wxVERTICAL 则仅是行,如果为 wxHORIZONTAL 则仅是列)中元素的行为始终由它们在调用 addGrowableRow/3addGrowableCol/3 中指定的比例决定。 在另一个方向上会发生什么取决于此函数返回的值,如下所述。

返回:以下值之一

  • wxFLEX_GROWMODE_NONE:布局器在非弹性方向上根本不会增长其元素。

  • wxFLEX_GROWMODE_SPECIFIED:布局器还会在非弹性方向上遵守使用 addGrowableCol/3addGrowableRow/3 设置的可增长的列/行。 在这种情况下,相等的调整大小适用于列或行的最小大小(这是默认值)。

  • wxFLEX_GROWMODE_ALL:布局器在非弹性方向上均等地拉伸所有列或行,而与在弹性方向上应用的比例无关。

参见

-spec new(Cols) -> wxFlexGridSizer() when Cols :: integer().

等效于 new(Cols, [])

-spec new(Cols, [Option]) -> wxFlexGridSizer()
             when Cols :: integer(), Option :: {gap, {W :: integer(), H :: integer()}}.
-spec new(Cols, Vgap, Hgap) -> wxFlexGridSizer()
             when Cols :: integer(), Vgap :: integer(), Hgap :: integer();
         (Rows, Cols, Gap) -> wxFlexGridSizer()
             when Rows :: integer(), Cols :: integer(), Gap :: {W :: integer(), H :: integer()}.
此函数的链接

new(Rows, Cols, Vgap, Hgap)

查看源代码
-spec new(Rows, Cols, Vgap, Hgap) -> wxFlexGridSizer()
             when Rows :: integer(), Cols :: integer(), Vgap :: integer(), Hgap :: integer().
此函数的链接

removeGrowableCol(This, Idx)

查看源代码
-spec removeGrowableCol(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().

指定不再增长索引为 idx 的列。

此函数的链接

removeGrowableRow(This, Idx)

查看源代码
-spec removeGrowableRow(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().

指定不再增长索引为 idx 的行。

此函数的链接

setFlexibleDirection(This, Direction)

查看源代码
-spec setFlexibleDirection(This, Direction) -> ok when This :: wxFlexGridSizer(), Direction :: integer().

指定布局器是否应灵活地调整其列、行或两者的大小。

参数 direction 可以是 wxVERTICALwxHORIZONTALwxBOTH (这是默认值)。 任何其他值都将被忽略。

有关这些值的说明,请参见 getFlexibleDirection/1。 请注意,此方法不会触发重新布局。

此函数的链接

setNonFlexibleGrowMode(This, Mode)

查看源代码
-spec setNonFlexibleGrowMode(This, Mode) -> ok when This :: wxFlexGridSizer(), Mode :: wx:wx_enum().

指定如果存在非弹性方向,布局器应如何在非弹性方向上增长(因此必须先前调用过 setFlexibleDirection/2)。

参数 mode 可以是 getNonFlexibleGrowMode/1 中记录的模式之一,请在那里查看其说明。 请注意,此方法不会触发重新布局。