檢視原始碼 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
中記載的其中一個,請參閱該處以瞭解其說明。請注意,此方法不會觸發重新佈局。