查看源代码 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().
函数
-spec addGrowableCol(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().
-spec addGrowableCol(This, Idx, [Option]) -> ok when This :: wxFlexGridSizer(), Idx :: integer(), Option :: {proportion, integer()}.
指定如果布局器有额外的可用空间,则应增长索引为 idx
(从零开始)的列。
proportion
参数的含义与布局器的伸缩因子相同(请参见 wxBoxSizer
),但如果所有比例均为 0,则所有列将均等调整大小(而不是根本不调整大小)。
请注意,该列必须尚未是可增长的,如果需要更改比例,则必须先调用 removeGrowableCol/2
,然后再使其再次增长(使用不同的比例)。 你可以使用 IsColGrowable()
(在 wx 中未实现)来检查列是否已经可增长。
-spec addGrowableRow(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().
-spec addGrowableRow(This, Idx, [Option]) -> ok when This :: wxFlexGridSizer(), Idx :: integer(), Option :: {proportion, integer()}.
指定如果布局器有额外的可用空间,则应增长索引为 idx (从零开始)的行。
这与 addGrowableCol/3
相同,不同之处在于它处理的是行而不是列。
-spec destroy(This :: wxFlexGridSizer()) -> ok.
销毁对象
-spec getFlexibleDirection(This) -> integer() when This :: wxFlexGridSizer().
返回一个 ?wxOrientation 值,该值指定布局器是灵活地调整其列、行还是两者(默认)。
返回:以下值之一
wxVERTICAL:行的大小是可弹性调整的。
wxHORIZONTAL:列的大小是可弹性调整的。
wxBOTH:行和列的大小都是可弹性调整的(这是默认值)。
-spec getNonFlexibleGrowMode(This) -> wx:wx_enum() when This :: wxFlexGridSizer().
返回一个值,该值指定如果存在“非弹性”方向,布局器在该方向上如何增长。
在弹性方向(即默认情况下是行和列,如果 getFlexibleDirection/1
为 wxVERTICAL
则仅是行,如果为 wxHORIZONTAL
则仅是列)中元素的行为始终由它们在调用 addGrowableRow/3
或 addGrowableCol/3
中指定的比例决定。 在另一个方向上会发生什么取决于此函数返回的值,如下所述。
返回:以下值之一
wxFLEX_GROWMODE_NONE:布局器在非弹性方向上根本不会增长其元素。
wxFLEX_GROWMODE_SPECIFIED:布局器还会在非弹性方向上遵守使用
addGrowableCol/3
和addGrowableRow/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()}.
-spec new(Rows, Cols, Vgap, Hgap) -> wxFlexGridSizer() when Rows :: integer(), Cols :: integer(), Vgap :: integer(), Hgap :: integer().
-spec removeGrowableCol(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().
指定不再增长索引为 idx
的列。
-spec removeGrowableRow(This, Idx) -> ok when This :: wxFlexGridSizer(), Idx :: integer().
指定不再增长索引为 idx
的行。
-spec setFlexibleDirection(This, Direction) -> ok when This :: wxFlexGridSizer(), Direction :: integer().
指定布局器是否应灵活地调整其列、行或两者的大小。
参数 direction
可以是 wxVERTICAL
,wxHORIZONTAL
或 wxBOTH
(这是默认值)。 任何其他值都将被忽略。
有关这些值的说明,请参见 getFlexibleDirection/1
。 请注意,此方法不会触发重新布局。
-spec setNonFlexibleGrowMode(This, Mode) -> ok when This :: wxFlexGridSizer(), Mode :: wx:wx_enum().
指定如果存在非弹性方向,布局器应如何在非弹性方向上增长(因此必须先前调用过 setFlexibleDirection/2
)。
参数 mode
可以是 getNonFlexibleGrowMode/1
中记录的模式之一,请在那里查看其说明。 请注意,此方法不会触发重新布局。