查看源代码 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。