檢視原始碼 wxSizerItem (wx v2.4.3)

wxSizerItem 類別用於追蹤由 wxSizer 管理的每個項目的位置、大小和其他屬性。

通常不需要使用此類別,因為 sizer 元素也可以透過它們的位置或視窗或 sizer 指標來識別,但有時直接使用它可能更方便。

wxWidgets 文件:wxSizerItem

摘要

函式

設定此項目追蹤的 sizer。

設定此項目追蹤的間隔器大小。

設定此項目要追蹤的視窗。

計算項目的最小期望大小,包括邊框所需的任何空間。

銷毀視窗或子 sizer 中的視窗,具體取決於項目類型。

銷毀物件

啟用刪除 SizerItem 而不銷毀包含的 sizer。

傳回邊框屬性。

傳回旗標屬性。

取得項目所需的最小大小。

項目在上次配置中設定的目前位置為何。

取得比例項目屬性。

取得比例項目屬性。

取得項目在父視窗上的矩形,不包括邊框。

取得項目在上次配置中設定的目前大小。

如果此項目正在追蹤 sizer,則傳回它。

如果此項目正在追蹤間隔器,則傳回其大小。

取得 userData 項目屬性。

如果此項目正在追蹤視窗,則傳回它。

如果此項目是視窗或間隔器且已顯示,或者如果此項目是 sizer 且並非其所有元素都隱藏,則傳回 true。

此項目是否為 sizer?

此項目是否為間隔器?

此項目是否為視窗?

建構用於追蹤間隔器的 sizer 項目。

設定邊框項目屬性。

設定配置給 sizer 的空間位置和大小,並調整項目在該空間內的位置和大小,同時考慮對齊和邊框。

設定旗標項目屬性。

設定為此項目配置的最小大小。

設定為此項目配置的最小大小。

這是一個為了方便而提供的多載成員函式。它與上述函式的不同之處僅在於它接受的引數。

設定比例項目屬性。

設定比例項目屬性。

設定顯示項目屬性,sizer 使用此屬性來判斷是否要將項目納入配置中。

型別

-type wxSizerItem() :: wx:wx_object().

函式

連結到此函式

assignSizer(This, Sizer)

檢視原始碼
-spec assignSizer(This, Sizer) -> ok when This :: wxSizerItem(), Sizer :: wxSizer:wxSizer().

設定此項目追蹤的 sizer。

如果有的話,會刪除舊的 sizer。

連結到此函式

assignSpacer(This, Size)

檢視原始碼
-spec assignSpacer(This, Size) -> ok
                      when This :: wxSizerItem(), Size :: {W :: integer(), H :: integer()}.

設定此項目追蹤的間隔器大小。

如果有的話,會刪除舊的間隔器。

連結到此函式

assignSpacer(This, W, H)

檢視原始碼
-spec assignSpacer(This, W, H) -> ok when This :: wxSizerItem(), W :: integer(), H :: integer().
連結到此函式

assignWindow(This, Window)

檢視原始碼
-spec assignWindow(This, Window) -> ok when This :: wxSizerItem(), Window :: wxWindow:wxWindow().

設定此項目要追蹤的視窗。

注意:這是一種底層方法,如果使用不當會很危險,如果可能,請避免使用它,也就是說,如果可以使用諸如 wxSizer:replace/4 之類的高階方法。

如果 sizer 項目先前包含視窗,則會將其從包含此 sizer 項目的 sizer 中分離(如果有的話),但此物件沒有指向包含 sizer 的指標,因此呼叫者有責任在 window 上呼叫 wxWindow:setContainingSizer/2。如果沒有這樣做,可能會在稍後銷毀視窗時導致記憶體損壞,因此務必不要忘記執行此操作。

另請注意,先前包含的視窗不會被刪除,因此如果需要,呼叫者也有責任執行此操作。

-spec calcMin(This) -> {W :: integer(), H :: integer()} when This :: wxSizerItem().

計算項目的最小期望大小,包括邊框所需的任何空間。

-spec deleteWindows(This) -> ok when This :: wxSizerItem().

銷毀視窗或子 sizer 中的視窗,具體取決於項目類型。

-spec destroy(This :: wxSizerItem()) -> ok.

銷毀物件

-spec detachSizer(This) -> ok when This :: wxSizerItem().

啟用刪除 SizerItem 而不銷毀包含的 sizer。

-spec getBorder(This) -> integer() when This :: wxSizerItem().

傳回邊框屬性。

-spec getFlag(This) -> integer() when This :: wxSizerItem().

傳回旗標屬性。

有關詳細資訊,請參閱 wxSizer 旗標列表(未在 wx 中實作)。

-spec getMinSize(This) -> {W :: integer(), H :: integer()} when This :: wxSizerItem().

取得項目所需的最小大小。

-spec getPosition(This) -> {X :: integer(), Y :: integer()} when This :: wxSizerItem().

項目在上次配置中設定的目前位置為何。

-spec getProportion(This) -> integer() when This :: wxSizerItem().

取得比例項目屬性。

-spec getRatio(This) -> number() when This :: wxSizerItem().

取得比例項目屬性。

-spec getRect(This) -> {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}
                 when This :: wxSizerItem().

取得項目在父視窗上的矩形,不包括邊框。

-spec getSize(This) -> {W :: integer(), H :: integer()} when This :: wxSizerItem().

取得項目在上次配置中設定的目前大小。

-spec getSizer(This) -> wxSizer:wxSizer() when This :: wxSizerItem().

如果此項目正在追蹤 sizer,則傳回它。

否則為 NULL。

-spec getSpacer(This) -> {W :: integer(), H :: integer()} when This :: wxSizerItem().

如果此項目正在追蹤間隔器,則傳回其大小。

-spec getUserData(This) -> wx:wx_object() when This :: wxSizerItem().

取得 userData 項目屬性。

-spec getWindow(This) -> wxWindow:wxWindow() when This :: wxSizerItem().

如果此項目正在追蹤視窗,則傳回它。

否則為 NULL。

-spec isShown(This) -> boolean() when This :: wxSizerItem().

如果此項目是視窗或間隔器且已顯示,或者如果此項目是 sizer 且並非其所有元素都隱藏,則傳回 true。

換句話說,對於 sizer 項目,必須隱藏所有子元素,sizer 本身才會被視為隱藏。

作為例外,如果此 sizer 項目使用了 wxRESERVE_SPACE_EVEN_IF_HIDDEN 旗標,則 isShown/1 會始終為其傳回 true (請參閱 wxSizerFlags::ReserveSpaceEvenIfHidden() (未在 wx 中實作))。

-spec isSizer(This) -> boolean() when This :: wxSizerItem().

此項目是否為 sizer?

-spec isSpacer(This) -> boolean() when This :: wxSizerItem().

此項目是否為間隔器?

-spec isWindow(This) -> boolean() when This :: wxSizerItem().

此項目是否為視窗?

-spec new(Window) -> wxSizerItem() when Window :: wxWindow:wxWindow() | wxSizer:wxSizer().

等同於 new(Window, [])

-spec new(Width, Height) -> wxSizerItem() when Width :: integer(), Height :: integer();
         (Window, Flags) -> wxSizerItem()
             when
                 Window :: wxWindow:wxWindow() | wxSizer:wxSizer(), Flags :: wxSizerFlags:wxSizerFlags();
         (Window, [Option]) -> wxSizerItem()
             when
                 Window :: wxWindow:wxWindow() | wxSizer:wxSizer(),
                 Option ::
                     {proportion, integer()} |
                     {flag, integer()} |
                     {border, integer()} |
                     {userData, wx:wx_object()}.
連結到此函式

new(Width, Height, Options)

檢視原始碼
-spec new(Width, Height, [Option]) -> wxSizerItem()
             when
                 Width :: integer(),
                 Height :: integer(),
                 Option ::
                     {proportion, integer()} |
                     {flag, integer()} |
                     {border, integer()} |
                     {userData, wx:wx_object()}.

建構用於追蹤間隔器的 sizer 項目。

連結到此函式

setBorder(This, Border)

檢視原始碼
-spec setBorder(This, Border) -> ok when This :: wxSizerItem(), Border :: integer().

設定邊框項目屬性。

連結到此函式

setDimension(This, Pos, Size)

檢視原始碼
-spec setDimension(This, Pos, Size) -> ok
                      when
                          This :: wxSizerItem(),
                          Pos :: {X :: integer(), Y :: integer()},
                          Size :: {W :: integer(), H :: integer()}.

設定配置給 sizer 的空間位置和大小,並調整項目在該空間內的位置和大小,同時考慮對齊和邊框。

-spec setFlag(This, Flag) -> ok when This :: wxSizerItem(), Flag :: integer().

設定旗標項目屬性。

連結到此函式

setInitSize(This, X, Y)

檢視原始碼
-spec setInitSize(This, X, Y) -> ok when This :: wxSizerItem(), X :: integer(), Y :: integer().

設定為此項目配置的最小大小。

這與 setMinSize/3 相同,請優先使用另一個函式,因為它的名稱更清楚。

連結到此函式

setMinSize(This, Size)

檢視原始碼
-spec setMinSize(This, Size) -> ok when This :: wxSizerItem(), Size :: {W :: integer(), H :: integer()}.

設定為此項目配置的最小大小。

如果此項目是視窗,則 size 也會傳遞給 wxWindow:setMinSize/2

連結到此函式

setMinSize(This, X, Y)

檢視原始碼
-spec setMinSize(This, X, Y) -> ok when This :: wxSizerItem(), X :: integer(), Y :: integer().

這是一個為了方便而提供的多載成員函式。它與上述函式的不同之處僅在於它接受的引數。

連結到此函式

setProportion(This, Proportion)

檢視原始碼
-spec setProportion(This, Proportion) -> ok when This :: wxSizerItem(), Proportion :: integer().

設定比例項目屬性。

-spec setRatio(This, Ratio) -> ok when This :: wxSizerItem(), Ratio :: number();
              (This, Size) -> ok when This :: wxSizerItem(), Size :: {W :: integer(), H :: integer()}.
連結到此函式

setRatio(This, Width, Height)

檢視原始碼
-spec setRatio(This, Width, Height) -> ok
                  when This :: wxSizerItem(), Width :: integer(), Height :: integer().

設定比例項目屬性。

-spec show(This, Show) -> ok when This :: wxSizerItem(), Show :: boolean().

設定顯示項目屬性,sizer 使用此屬性來判斷是否要將項目納入配置中。

如果項目正在追蹤視窗,則會根據需要顯示或隱藏它。