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

這是一個方便的類別,它繼承自 wxControlwxItemContainer (在 wx 中未實作)。

它被用作一些 wxWidgets 控制項 (wxChoicewxListBox) 的基礎。

這個類別繼承自以下類別,並可以使用它們的函式:

wxWidgets 文件:wxControlWithItems

摘要

函式

將項目附加到控制項中。

將項目附加到控制項中。

一次將多個項目附加到控制項中。

一次將多個項目附加到控制項中。

從控制項中移除所有項目。

從控制項中刪除一個項目。

尋找標籤與給定字串相符的項目。

傳回與給定項目關聯的客戶端資料指標(如果有的話)。

傳回控制項中的項目數量。

傳回所選項目的索引,如果沒有選取任何項目,則傳回 wxNOT\_FOUND

傳回具有給定索引的項目的標籤。

傳回所選項目的標籤,如果沒有選取任何項目,則傳回空字串。

將項目插入到控制項中。

將項目插入到控制項中。

一次將多個項目插入到控制項中。

一次將多個項目插入到控制項中。

如果控制項為空,則傳回 true,如果控制項有一些項目,則傳回 false。

這與 setSelection/2 相同,存在的原因僅是因為對於支援多重選取的控制項而言,它稍微更自然一些。

將給定的已型別的客戶端資料指標與給定項目關聯:當項目被刪除時(無論是透過使用 delete/2 明確刪除,還是當控制項本身被銷毀時隱含刪除),data 物件將被刪除。

將選取項目設定為給定的項目 n,如果 n == wxNOT\_FOUND,則完全移除選取項目。

設定給定項目的標籤。

在控制項中選取具有指定字串的項目。

類型

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

函式

-spec append(This, Item) -> integer() when This :: wxControlWithItems(), Item :: unicode:chardata().

將項目附加到控制項中。

傳回值:傳回值是新插入項目的索引。請注意,如果控制項已排序(例如,具有 wxLB_SORTwxCB_SORT 樣式),則此值可能與最後一個索引不同。

此函式的連結

append(This, Item, ClientData)

檢視原始碼
-spec append(This, Item, ClientData) -> integer()
                when This :: wxControlWithItems(), Item :: unicode:chardata(), ClientData :: term().

將項目附加到控制項中。

傳回值:傳回值是新插入項目的索引。請注意,如果控制項已排序(例如,具有 wxLB_SORTwxCB_SORT 樣式),則此值可能與最後一個索引不同。

此函式的連結

appendStrings(This, Items)

檢視原始碼
-spec appendStrings(This, Items) -> integer()
                       when This :: wxControlWithItems(), Items :: [unicode:chardata()].

一次將多個項目附加到控制項中。

請注意,如果您需要新增大量項目,呼叫此方法通常比逐一附加它們快得多。

此函式的連結

appendStrings(This, Items, ClientsData)

檢視原始碼
-spec appendStrings(This, Items, ClientsData) -> integer()
                       when
                           This :: wxControlWithItems(),
                           Items :: [unicode:chardata()],
                           ClientsData :: [term()].

一次將多個項目附加到控制項中。

請注意,如果您需要新增大量項目,呼叫此方法通常比逐一附加它們快得多。

-spec clear(This) -> ok when This :: wxControlWithItems().

從控制項中移除所有項目。

clear/1 也會刪除現有項目的客戶端資料(如果該資料由控制項擁有)。

-spec delete(This, N) -> ok when This :: wxControlWithItems(), N :: integer().

從控制項中刪除一個項目。

如果客戶端資料由控制項擁有,則與項目關聯的客戶端資料也會被刪除。 請注意,刪除索引為負數或大於或等於控制項中項目數的項目是錯誤的(在除錯組建中由斷言失敗表示)。

如果目前選取的項目在要刪除的項目下方,即如果 getSelection/1 傳回大於或等於 n 的有效索引,則當呼叫此函式時,選取項目將會失效。但是,如果選取的項目出現在要刪除的項目之前,則選取項目將會保持不變。

請參閱:clear/1

此函式的連結

findString(This, String)

檢視原始碼
-spec findString(This, String) -> integer()
                    when This :: wxControlWithItems(), String :: unicode:chardata().

等同於 findString(This, String, [])

-spec findString(This, String, [Option]) -> integer()
                    when
                        This :: wxControlWithItems(),
                        String :: unicode:chardata(),
                        Option :: {bCase, boolean()}.

尋找標籤與給定字串相符的項目。

傳回值:項目的從零開始的位置,如果找不到字串,則傳回 wxNOT_FOUND。

此函式的連結

getClientData(This, N)

檢視原始碼
-spec getClientData(This, N) -> term() when This :: wxControlWithItems(), N :: integer().

傳回與給定項目關聯的客戶端資料指標(如果有的話)。

對於根本沒有型別客戶端資料的控制項呼叫此函式是錯誤的,儘管即使給定項目沒有與之關聯的任何客戶端資料(但其他項目有)呼叫它也是可以的。

請注意,傳回的指標仍然由控制項擁有,並將由其刪除,如果您想從控制項中移除指標,請使用 DetachClientObject()(在 wx 中未實作)。

傳回值:客戶端資料的指標,如果不存在則傳回 NULL。

-spec getCount(This) -> integer() when This :: wxControlWithItems().

傳回控制項中的項目數量。

請參閱:isEmpty/1

-spec getSelection(This) -> integer() when This :: wxControlWithItems().

傳回所選項目的索引,如果沒有選取任何項目,則傳回 wxNOT\_FOUND

傳回值:目前選取項目的位置。

注意:此方法只能用於單選清單方塊,對於具有 wxLB_MULTIPLE 樣式的清單方塊,您應該使用 wxListBox:getSelections/1

請參閱

-spec getString(This, N) -> unicode:charlist() when This :: wxControlWithItems(), N :: integer().

傳回具有給定索引的項目的標籤。

傳回值:項目的標籤,如果位置無效則傳回空字串。

此函式的連結

getStringSelection(This)

檢視原始碼
-spec getStringSelection(This) -> unicode:charlist() when This :: wxControlWithItems().

傳回所選項目的標籤,如果沒有選取任何項目,則傳回空字串。

請參閱:getSelection/1

此函式的連結

insert(This, Item, Pos)

檢視原始碼
-spec insert(This, Item, Pos) -> integer()
                when This :: wxControlWithItems(), Item :: unicode:chardata(), Pos :: integer().

將項目插入到控制項中。

傳回值:傳回值是新插入項目的索引。 如果由於某種原因插入失敗,則傳回 -1。

此函式的連結

insert(This, Item, Pos, ClientData)

檢視原始碼
-spec insert(This, Item, Pos, ClientData) -> integer()
                when
                    This :: wxControlWithItems(),
                    Item :: unicode:chardata(),
                    Pos :: integer(),
                    ClientData :: term().

將項目插入到控制項中。

傳回值:傳回值是新插入項目的索引。 如果由於某種原因插入失敗,則傳回 -1。

此函式的連結

insertStrings(This, Items, Pos)

檢視原始碼
-spec insertStrings(This, Items, Pos) -> integer()
                       when
                           This :: wxControlWithItems(), Items :: [unicode:chardata()], Pos :: integer().

一次將多個項目插入到控制項中。

請注意,如果您需要插入大量項目,呼叫此方法通常比逐一插入它們快得多。

傳回值:傳回值是最後插入的項目的索引。 如果由於某種原因插入失敗,則傳回 -1。

此函式的連結

insertStrings(This, Items, Pos, ClientsData)

檢視原始碼
-spec insertStrings(This, Items, Pos, ClientsData) -> integer()
                       when
                           This :: wxControlWithItems(),
                           Items :: [unicode:chardata()],
                           Pos :: integer(),
                           ClientsData :: [term()].

一次將多個項目插入到控制項中。

請注意,如果您需要插入大量項目,呼叫此方法通常比逐一插入它們快得多。

傳回值:傳回值是最後插入的項目的索引。 如果由於某種原因插入失敗,則傳回 -1。

-spec isEmpty(This) -> boolean() when This :: wxControlWithItems().

如果控制項為空,則傳回 true,如果控制項有一些項目,則傳回 false。

請參閱:getCount/1

-spec select(This, N) -> ok when This :: wxControlWithItems(), N :: integer().

這與 setSelection/2 相同,存在的原因僅是因為對於支援多重選取的控制項而言,它稍微更自然一些。

此函式的連結

setClientData(This, N, Data)

檢視原始碼
-spec setClientData(This, N, Data) -> ok
                       when This :: wxControlWithItems(), N :: integer(), Data :: term().

將給定的已型別的客戶端資料指標與給定項目關聯:當項目被刪除時(無論是透過使用 delete/2 明確刪除,還是當控制項本身被銷毀時隱含刪除),data 物件將被刪除。

請注意,如果先前有任何未型別的客戶端資料指標與控制項項目關聯,則呼叫此函式是錯誤的。

-spec setSelection(This, N) -> ok when This :: wxControlWithItems(), N :: integer().

將選取項目設定為給定的項目 n,如果 n == wxNOT\_FOUND,則完全移除選取項目。

請注意,這不會導致發出任何命令事件,也不會取消選取支援多重選取的控制項中的任何其他項目。

請參閱

此函式的連結

setString(This, N, String)

檢視原始碼
-spec setString(This, N, String) -> ok
                   when This :: wxControlWithItems(), N :: integer(), String :: unicode:chardata().

設定給定項目的標籤。

此函式的連結

setStringSelection(This, String)

檢視原始碼
-spec setStringSelection(This, String) -> boolean()
                            when This :: wxControlWithItems(), String :: unicode:chardata().

在控制項中選取具有指定字串的項目。

此方法不會導致發出任何命令事件。

請注意,此方法不區分大小寫,即字串會與控制項的所有元素進行不區分大小寫的比較,並且會選取第一個符合的項目,即使它的大小寫與此字串不完全相同,並且之後有完全相符的項目。

傳回值:如果已選取指定的字串,則傳回 true,如果在控制項中找不到該字串,則傳回 false。