檢視原始碼 wxGridBagSizer (wx v2.4.3)
一個 wxSizer
,可以像 wxFlexGridSizer
一樣在虛擬網格中佈局項目,但在這種情況下,允許使用 wxGBPosition
明確定位項目(在 wx 中未實現),並且項目可以選擇使用 wxGBSpan
跨越多個行和/或列(在 wx 中未實現)。
這個類別繼承自以下類別,並且可以使用它們的函式:
wxWidgets 文件:wxGridBagSizer
摘要
函式
將給定的項目新增到給定的位置。
將一個間隔物件新增到給定的位置。
當需要計算 sizer 的管理尺寸或需要進行佈局時呼叫。
查看所有項目,看看是否有任何項目與給定的項目相交(或會重疊)。
銷毀該物件
尋找給定視窗或子 sizer 的 sizer 項目,如果找不到則返回 NULL。
返回位於給定點 pt 的 sizer 項目,如果該點沒有項目則返回 NULL。
返回給定網格儲存格的 sizer 項目,如果該位置沒有項目則返回 NULL。
返回具有相符使用者資料的 sizer 項目(僅比較指標值),如果找不到則返回 NULL。
取得指定儲存格的大小,包括水平間隙和垂直間隙。
取得網格中沒有項目的儲存格所使用的大小。
建構子,可選參數用於指定行和列之間的間隙。
設定網格中沒有項目的儲存格所使用的大小。
型別
-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().
取得指定儲存格的大小,包括水平間隙和垂直間隙。
僅在執行視窗佈局後有效。
-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()}.