查看源代码 wxGridBagSizer (wx v2.4.3)
一个 wxSizer
,它可以在一个虚拟网格中布局项目,就像 wxFlexGridSizer
一样,但是这种情况下,允许使用 wxGBPosition
(在 wx 中未实现)显式定位项目,并且可以使用 wxGBSpan
(在 wx 中未实现)使项目跨越多个行和/或列。
此类派生自,并且可以使用来自以下类的函数:
wxWidgets 文档: wxGridBagSizer
概要
函数
将给定项目添加到给定位置。
将一个间隔添加到给定位置。
当需要 sizer 的管理尺寸或需要进行布局时调用。
查看所有项目,看看是否有任何项目与给定项目相交(或会重叠)。
销毁对象
查找给定窗口或子 sizer 的 sizer 项,如果未找到则返回 NULL。
返回位于给定点 pt 的 sizer 项,如果该点没有项,则返回 NULL。
返回给定网格单元的 sizer 项,如果该位置没有项,则返回 NULL。
返回具有匹配用户数据的 sizer 项(仅比较指针值),如果未找到则返回 NULL。
获取指定单元格的大小,包括 hgap 和 vgap。
获取网格中没有项目的单元格使用的大小。
构造函数,带有可选参数来指定行和列之间的间隙。
设置网格中没有项目的单元格使用的大小。
类型
-type wxGridBagSizer() :: wx:wx_object().
函数
-spec add(This, Item) -> wxSizerItem:wxSizerItem() when This :: wxGridBagSizer(), Item :: wxGBSizerItem:wxGBSizerItem().
-spec add(This, Window, Pos) -> wxSizerItem:wxSizerItem() when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer(), Pos :: {R :: integer(), C :: integer()}.
-spec add(This, Width, Height, Pos) -> wxSizerItem:wxSizerItem() when This :: wxGridBagSizer(), Width :: integer(), Height :: integer(), Pos :: {R :: integer(), C :: integer()}; (This, Window, Pos, [Option]) -> wxSizerItem:wxSizerItem() when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer(), Pos :: {R :: integer(), C :: integer()}, Option :: {span, {RS :: integer(), CS :: integer()}} | {flag, integer()} | {border, integer()} | {userData, wx:wx_object()}.
将给定项目添加到给定位置。
返回:如果项目成功放置在给定位置,则返回一个有效的指针;如果该位置已经有东西,则返回 NULL。
-spec add(This, Width, Height, Pos, [Option]) -> wxSizerItem:wxSizerItem() when This :: wxGridBagSizer(), Width :: integer(), Height :: integer(), Pos :: {R :: integer(), C :: integer()}, Option :: {span, {RS :: integer(), CS :: integer()}} | {flag, integer()} | {border, integer()} | {userData, wx:wx_object()}.
将一个间隔添加到给定位置。
width
和 height
指定要添加的间隔的尺寸。
返回:如果间隔成功放置在给定位置,则返回一个有效的指针;如果该位置已经有东西,则返回 NULL。
-spec calcMin(This) -> {W :: integer(), H :: integer()} when This :: wxGridBagSizer().
当需要 sizer 的管理尺寸或需要进行布局时调用。
-spec checkForIntersection(This, Item) -> boolean() when This :: wxGridBagSizer(), Item :: wxGBSizerItem:wxGBSizerItem().
-spec checkForIntersection(This, Pos, Span) -> boolean() when This :: wxGridBagSizer(), Pos :: {R :: integer(), C :: integer()}, Span :: {RS :: integer(), CS :: integer()}; (This, Item, [Option]) -> boolean() when This :: wxGridBagSizer(), Item :: wxGBSizerItem:wxGBSizerItem(), Option :: {excludeItem, wxGBSizerItem:wxGBSizerItem()}.
查看所有项目,看看是否有任何项目与给定项目相交(或会重叠)。
如果是,则返回 true;如果不会重叠,则返回 false。 如果给定了 excludeItem
,则不会检查其是否相交,例如,它可能是我们正在检查其位置的项目。
-spec checkForIntersection(This, Pos, Span, [Option]) -> boolean() when This :: wxGridBagSizer(), Pos :: {R :: integer(), C :: integer()}, Span :: {RS :: integer(), CS :: integer()}, Option :: {excludeItem, wxGBSizerItem:wxGBSizerItem()}.
-spec destroy(This :: wxGridBagSizer()) -> ok.
销毁对象
-spec findItem(This, Window) -> wxGBSizerItem:wxGBSizerItem() when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer().
查找给定窗口或子 sizer 的 sizer 项,如果未找到则返回 NULL。
(非递归)
-spec findItemAtPoint(This, Pt) -> wxGBSizerItem:wxGBSizerItem() when This :: wxGridBagSizer(), Pt :: {X :: integer(), Y :: integer()}.
返回位于给定点 pt 的 sizer 项,如果该点没有项,则返回 NULL。
pt
中的 (x,y) 坐标对应于使用 sizer 进行布局的窗口的客户端坐标。(非递归)
-spec findItemAtPosition(This, Pos) -> wxGBSizerItem:wxGBSizerItem() when This :: wxGridBagSizer(), Pos :: {R :: integer(), C :: integer()}.
返回给定网格单元的 sizer 项,如果该位置没有项,则返回 NULL。
(非递归)
-spec findItemWithData(This, UserData) -> wxGBSizerItem:wxGBSizerItem() when This :: wxGridBagSizer(), UserData :: wx:wx_object().
返回具有匹配用户数据的 sizer 项(仅比较指针值),如果未找到则返回 NULL。
(非递归)
-spec getCellSize(This, Row, Col) -> {W :: integer(), H :: integer()} when This :: wxGridBagSizer(), Row :: integer(), Col :: integer().
获取指定单元格的大小,包括 hgap 和 vgap。
仅在执行窗口布局后有效。
-spec getEmptyCellSize(This) -> {W :: integer(), H :: integer()} when This :: wxGridBagSizer().
获取网格中没有项目的单元格使用的大小。
-spec getItemPosition(This, Window) -> {R :: integer(), C :: integer()} when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer(); (This, Index) -> {R :: integer(), C :: integer()} when This :: wxGridBagSizer(), Index :: integer().
-spec getItemSpan(This, Window) -> {RS :: integer(), CS :: integer()} when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer(); (This, Index) -> {RS :: integer(), CS :: integer()} when This :: wxGridBagSizer(), Index :: integer().
-spec new() -> wxGridBagSizer().
等价于 new([])
。
-spec new([Option]) -> wxGridBagSizer() when Option :: {vgap, integer()} | {hgap, integer()}.
构造函数,带有可选参数来指定行和列之间的间隙。
-spec setEmptyCellSize(This, Sz) -> ok when This :: wxGridBagSizer(), Sz :: {W :: integer(), H :: integer()}.
设置网格中没有项目的单元格使用的大小。
-spec setItemPosition(This, Window, Pos) -> boolean() when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer(), Pos :: {R :: integer(), C :: integer()}; (This, Index, Pos) -> boolean() when This :: wxGridBagSizer(), Index :: integer(), Pos :: {R :: integer(), C :: integer()}.
-spec setItemSpan(This, Window, Span) -> boolean() when This :: wxGridBagSizer(), Window :: wxWindow:wxWindow() | wxSizer:wxSizer(), Span :: {RS :: integer(), CS :: integer()}; (This, Index, Span) -> boolean() when This :: wxGridBagSizer(), Index :: integer(), Span :: {RS :: integer(), CS :: integer()}.