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