查看源代码 wxListCtrl (wx v2.4.3)

列表控件以多种格式显示列表:列表视图、报告视图、图标视图和小图标视图。

在任何情况下,元素的编号都从零开始。 对于所有这些模式,项目都存储在控件中,必须使用 insertItem/4 方法添加到其中。

报告视图的一个特殊情况与列表控件的其他模式截然不同,它是一个虚拟控件,其中项目数据(包括文本、图像和属性)由主程序管理,并且仅在需要时才由控件本身请求,这允许拥有数百万个项目的控件而不会消耗太多内存。要使用虚拟列表控件,您必须首先使用 setItemCount/2,并且至少覆盖 wxListCtrl::OnGetItemText(在 wx 中未实现)(并可选地覆盖 wxListCtrl::OnGetItemImage(在 wx 中未实现)或 wxListCtrl::OnGetItemColumnImage(在 wx 中未实现)和 wxListCtrl::OnGetItemAttr(在 wx 中未实现))以在控件请求时返回有关项目的信息。

虚拟列表控件可以用作普通控件,只是不会发生可能花费与控件中项目数量成正比的时间的操作 - 这是为了允许拥有实际上无限数量的项目。例如,在多选虚拟列表控件中,当一次选择多个项目时,不会发送选择,因为这可能意味着迭代所有项目。

在相应的示例中展示了许多 wxListCtrl 功能的使用。

要拦截来自列表控件的事件,请使用 wxListEvent 中描述的事件表宏。

wxMac 注意:从 wxWidgets 2.8 开始,wxListCtrl 为报告模式使用本机实现,并为其他模式使用通用实现。您还可以通过将 mac.listctrl.always_use_generic 系统选项(请参阅 wxSystemOptions)设置为 1 来为报告模式使用通用实现。

样式

此类支持以下样式

  • wxLC_LIST:多列列表视图,带有可选的小图标。列是自动计算的,即您不必像在 wxLC_REPORT 中那样设置列。换句话说,列表会换行,不像 wxListBox

  • wxLC_REPORT:单列或多列报告视图,带有可选的标题。

  • wxLC_VIRTUAL:应用程序按需提供项目文本。只能与 wxLC_REPORT 一起使用。

  • wxLC_ICON:大图标视图,带有可选的标签。

  • wxLC_SMALL_ICON:小图标视图,带有可选的标签。

  • wxLC_ALIGN_TOP:图标顶部对齐。Win32 默认值,仅限 Win32。

  • wxLC_ALIGN_LEFT:图标左对齐。

  • wxLC_AUTOARRANGE:图标自动排列。仅限 Win32。

  • wxLC_EDIT_LABELS:标签可编辑:当编辑开始时,会通知应用程序。

  • wxLC_NO_HEADER:报告模式下没有标题。

  • wxLC_SINGLE_SEL:单选(默认是多选)。

  • wxLC_SORT_ASCENDING:升序排序。(您仍然必须在 sortItems/2 中提供比较回调。)

  • wxLC_SORT_DESCENDING:降序排序。(您仍然必须在 sortItems/2 中提供比较回调。)

  • wxLC_HRULES:在报告模式下,在行之间绘制浅色水平规则。

  • wxLC_VRULES:在报告模式下,在列之间绘制浅色垂直规则。

参见

此类派生自以下类,可以使用以下类中的函数

wxWidgets 文档: wxListCtrl

事件

此类发出的事件类型

摘要

函数

在图标或小图标视图中排列项目。

设置与控件关联的图像列表,并取得其所有权(即。

删除所有项目和所有列。

删除列表控件中的所有项目。

删除一列。

删除指定的项目。

销毁对象

开始编辑给定项目的标签。

确保此项目可见。

start 开始,或者如果 start 为 -1 则从头开始,在指定方向上查找最接近此位置的项目。

获取有关此列的信息。

返回列数。

获取列宽度(仅限报告视图)。

获取可以在列表控件(列表或报告视图)的可见区域垂直容纳的项目数,或者列表控件中项目的总数(图标或小图标视图)。

返回当前用于编辑标签的编辑控件。

返回指定的图像列表。

获取有关项目的信息。

返回此项目的颜色。

返回列表控件中的项目数。

获取与此项目关联的应用程序定义的数据。

返回项目的字体。

返回项目在图标或小图标视图中的位置。

返回表示项目的尺寸和位置(以物理坐标表示)的矩形。

检索图标之间的间距(以像素为单位):水平间距作为 {Width,Height} 对象的 x 分量返回,垂直间距作为其 y 分量返回。

获取项目状态。

获取此项目的项目文本。

返回此项目的颜色。

item 开始搜索具有给定几何形状或状态的项目,但不包括 item 本身。

返回列表控件中选定项目的数量。

获取列表控件的文本颜色。

当处于列表或报告视图时,获取最顶部的可见项目的索引。

返回控件中所有项目所占据的矩形。

确定指定点处是否存在项目(如果有),并在 flags 中提供详细信息。

对于报告视图模式(仅限),插入一列。

对于报告视图模式(仅限),插入一列。

插入一个项目,如果成功则返回新项目的索引,否则返回 -1。

插入一个字符串项目。

插入一个图像/字符串项目。

重新绘制给定的 item

重新绘制 itemFromitemTo 之间的项目。

滚动列表控件。

设置背景颜色。

设置有关此列的信息。

设置与控件关联的图像列表。

设置项目的数据。

在特定列设置项目字符串字段。

设置此项目的背景颜色。

设置与项目关联的图像。

此方法只能与虚拟列表控件一起使用。

将应用程序定义的数据与此项目关联。

设置项目的字体。

设置与项目关联的未选中和选中图像。

设置项目在图标或小图标视图中的位置。

设置此项目的文本。

设置此项目的颜色。

添加或删除单个窗口样式。

设置列表控件的文本颜色。

设置整个窗口样式,删除所有项目。

类型

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

函数

-spec arrange(This) -> boolean() when This :: wxListCtrl().

等效于 arrange(This, [])

-spec arrange(This, [Option]) -> boolean() when This :: wxListCtrl(), Option :: {flag, integer()}.

在图标或小图标视图中排列项目。

这只在 Win32 上有效。flag 是以下之一

  • wxLIST_ALIGN_DEFAULT: 默认对齐方式。

  • wxLIST_ALIGN_LEFT: 对齐到控件的左侧。

  • wxLIST_ALIGN_TOP: 对齐到控件的顶部。

  • wxLIST_ALIGN_SNAP_TO_GRID: 对齐到网格。

链接到此函数

assignImageList(This, ImageList, Which)

查看源代码
-spec assignImageList(This, ImageList, Which) -> ok
                         when
                             This :: wxListCtrl(),
                             ImageList :: wxImageList:wxImageList(),
                             Which :: integer().

设置与控件关联的图像列表,并取得其所有权(即。

与使用 setImageList/3 不同,控件在销毁时会删除列表。whichwxIMAGE_LIST_NORMALwxIMAGE_LIST_SMALLwxIMAGE_LIST_STATE 中的一个(最后一个未实现)。

参见:setImageList/3

-spec clearAll(This) -> ok when This :: wxListCtrl().

删除所有项目和所有列。

注意:这会在所有平台上发送 wxEVT_LIST_DELETE_ALL_ITEMS 类型的事件。

-spec create(This, Parent) -> boolean() when This :: wxWindow:wxWindow(), Parent :: wxWindow:wxWindow().
-spec create(This, Parent, [Option]) -> boolean()
                when
                    This :: wxWindow:wxWindow(),
                    Parent :: wxWindow:wxWindow(),
                    Option ::
                        {winid, integer()} |
                        {pos, {X :: integer(), Y :: integer()}} |
                        {size, {W :: integer(), H :: integer()}} |
                        {style, integer()} |
                        {validator, wx:wx_object()} |
                        {onGetItemText, function()} |
                        {onGetItemAttr, function()} |
                        {onGetItemColumnImage, function()}.
-spec deleteAllItems(This) -> boolean() when This :: wxListCtrl().

删除列表控件中的所有项目。

此函数 发送 wxEVT_LIST_DELETE_ITEM 事件,因为从控件中删除许多项目会太慢(与 deleteItem/2 不同),但如果控件不为空,则会发送特殊的 wxEVT_LIST_DELETE_ALL_ITEMS 事件。如果控件已经为空,则不执行任何操作,也不发送任何事件。

返回:如果项目已成功删除或控件已为空,则返回 true;如果在删除项目时发生错误,则返回 false。

链接到此函数

deleteColumn(This, Col)

查看源代码
-spec deleteColumn(This, Col) -> boolean() when This :: wxListCtrl(), Col :: integer().

删除一列。

链接到此函数

deleteItem(This, Item)

查看源代码
-spec deleteItem(This, Item) -> boolean() when This :: wxListCtrl(), Item :: integer().

删除指定的项目。

此函数为正在删除的项目发送 wxEVT_LIST_DELETE_ITEM 事件。

参见:deleteAllItems/1

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

销毁对象

-spec editLabel(This, Item) -> wxTextCtrl:wxTextCtrl() when This :: wxListCtrl(), Item :: integer().

开始编辑给定项目的标签。

此函数生成一个 EVT_LIST_BEGIN_LABEL_EDIT 事件,可以否决该事件,以便不会出现文本控件进行就地编辑。

如果用户更改了标签(即,他/她没有按 ESC 或在没有更改的情况下离开文本控件),则将发送一个 EVT_LIST_END_LABEL_EDIT 事件,也可以否决该事件。

链接到此函数

ensureVisible(This, Item)

查看源代码
-spec ensureVisible(This, Item) -> boolean() when This :: wxListCtrl(), Item :: integer().

确保此项目可见。

链接到此函数

findItem(This, Start, Str)

查看源代码
-spec findItem(This, Start, Str) -> integer()
                  when This :: wxListCtrl(), Start :: integer(), Str :: unicode:chardata().

等效于 findItem(This, Start, Str, [])

-spec findItem(This, Start, Str, [Option]) -> integer()
                  when
                      This :: wxListCtrl(),
                      Start :: integer(),
                      Str :: unicode:chardata(),
                      Option :: {partial, boolean()};
              (This, Start, Pt, Direction) -> integer()
                  when
                      This :: wxListCtrl(),
                      Start :: integer(),
                      Pt :: {X :: integer(), Y :: integer()},
                      Direction :: integer().

start 开始,或者如果 start 为 -1 则从头开始,在指定方向上查找最接近此位置的项目。

返回:如果存在下一个匹配项,则返回该项的索引,否则返回 -1 (wxNOT_FOUND)。

链接到此函数

getColumn(This, Col, Item)

查看源代码
-spec getColumn(This, Col, Item) -> boolean()
                   when This :: wxListCtrl(), Col :: integer(), Item :: wxListItem:wxListItem().

获取有关此列的信息。

有关更多信息,请参见 setItem/5

-spec getColumnCount(This) -> integer() when This :: wxListCtrl().

返回列数。

链接到此函数

getColumnWidth(This, Col)

查看源代码
-spec getColumnWidth(This, Col) -> integer() when This :: wxListCtrl(), Col :: integer().

获取列宽度(仅限报告视图)。

-spec getCountPerPage(This) -> integer() when This :: wxListCtrl().

获取可以在列表控件(列表或报告视图)的可见区域垂直容纳的项目数,或者列表控件中项目的总数(图标或小图标视图)。

-spec getEditControl(This) -> wxTextCtrl:wxTextCtrl() when This :: wxListCtrl().

返回当前用于编辑标签的编辑控件。

如果没有标签正在编辑,则返回 NULL。

注意:它目前仅在 wxMSW 和通用版本中实现,而不在本机 macOS 版本中实现。

链接到此函数

getImageList(This, Which)

查看源代码
-spec getImageList(This, Which) -> wxImageList:wxImageList()
                      when This :: wxListCtrl(), Which :: integer().

返回指定的图像列表。

which 可以是以下之一

  • wxIMAGE_LIST_NORMAL:普通(大图标)图像列表。

  • wxIMAGE_LIST_SMALL:小图标图像列表。

  • wxIMAGE_LIST_STATE:用户定义的状态图像列表(未实现)。

-spec getItem(This, Info) -> boolean() when This :: wxListCtrl(), Info :: wxListItem:wxListItem().

获取有关项目的信息。

有关更多信息,请参见 setItem/5

在调用此方法之前,您必须调用 info.SetId() 来设置您感兴趣的项目的 ID,并使用指示您需要从 info 中检索的字段的标志调用 info.SetMask()

链接到此函数

getItemBackgroundColour(This, Item)

查看源代码
-spec getItemBackgroundColour(This, Item) -> wx:wx_colour4()
                                 when This :: wxListCtrl(), Item :: integer().

返回此项目的颜色。

如果项目没有特定的颜色,则返回无效颜色(而不是控件本身的默认背景控制)。

参见:getItemTextColour/2

-spec getItemCount(This) -> integer() when This :: wxListCtrl().

返回列表控件中的项目数。

链接到此函数

getItemData(This, Item)

查看源代码
-spec getItemData(This, Item) -> integer() when This :: wxListCtrl(), Item :: integer().

获取与此项目关联的应用程序定义的数据。

链接到此函数

getItemFont(This, Item)

查看源代码
-spec getItemFont(This, Item) -> wxFont:wxFont() when This :: wxListCtrl(), Item :: integer().

返回项目的字体。

链接到此函数

getItemPosition(This, Item)

查看源代码
-spec getItemPosition(This, Item) -> Result
                         when
                             Result :: {Res :: boolean(), Pos :: {X :: integer(), Y :: integer()}},
                             This :: wxListCtrl(),
                             Item :: integer().

返回项目在图标或小图标视图中的位置。

链接到此函数

getItemRect(This, Item)

查看源代码
-spec getItemRect(This, Item) -> Result
                     when
                         Result ::
                             {Res :: boolean(),
                              Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}},
                         This :: wxListCtrl(),
                         Item :: integer().

等效于 getItemRect(This, Item, [])

-spec getItemRect(This, Item, [Option]) -> Result
                     when
                         Result ::
                             {Res :: boolean(),
                              Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}},
                         This :: wxListCtrl(),
                         Item :: integer(),
                         Option :: {code, integer()}.

返回表示项目的尺寸和位置(以物理坐标表示)的矩形。

code 是 wxLIST_RECT_BOUNDS、wxLIST_RECT_ICON、wxLIST_RECT_LABEL 之一。

-spec getItemSpacing(This) -> {W :: integer(), H :: integer()} when This :: wxListCtrl().

检索图标之间的间距(以像素为单位):水平间距作为 {Width,Height} 对象的 x 分量返回,垂直间距作为其 y 分量返回。

链接到此函数

getItemState(This, Item, StateMask)

查看源代码
-spec getItemState(This, Item, StateMask) -> integer()
                      when This :: wxListCtrl(), Item :: integer(), StateMask :: integer().

获取项目状态。

有关状态标志的列表,请参见 setItem/5stateMask 指示哪些状态标志是感兴趣的。

链接到此函数

getItemText(This, Item)

查看源代码
-spec getItemText(This, Item) -> unicode:charlist() when This :: wxListCtrl(), Item :: integer().

等效于 getItemText(This, Item, [])

-spec getItemText(This, Item, [Option]) -> unicode:charlist()
                     when This :: wxListCtrl(), Item :: integer(), Option :: {col, integer()}.

获取此项目的项目文本。

链接到此函数

getItemTextColour(This, Item)

查看源代码
-spec getItemTextColour(This, Item) -> wx:wx_colour4() when This :: wxListCtrl(), Item :: integer().

返回此项目的颜色。

如果项目没有特定的颜色,则返回无效颜色(而不是控件本身的默认前景控制,因为这将不允许区分具有与当前控件前景颜色相同的项目和具有默认颜色的项目,因此,这些项目的颜色始终与控件的颜色相同)。

链接到此函数

getNextItem(This, Item)

查看源代码
-spec getNextItem(This, Item) -> integer() when This :: wxListCtrl(), Item :: integer().

等效于 getNextItem(This, Item, [])

-spec getNextItem(This, Item, [Option]) -> integer()
                     when
                         This :: wxListCtrl(),
                         Item :: integer(),
                         Option :: {geometry, integer()} | {state, integer()}.

item 开始搜索具有给定几何形状或状态的项目,但不包括 item 本身。

如果 item 为 -1,则返回与指定标志匹配的第一个项目。返回在 item 之后具有给定状态的第一个项目,如果未找到此类项目,则返回 -1。可以使用此函数来查找控件中的所有选定项目,如下所示

geometry 可以是以下之一

  • wxLIST_NEXT_ABOVE:搜索指定项目上方的项目。

  • wxLIST_NEXT_ALL:按索引搜索后续项目。

  • wxLIST_NEXT_BELOW:搜索指定项目下方的项目。

  • wxLIST_NEXT_LEFT:搜索指定项目左侧的项目。

  • wxLIST_NEXT_RIGHT:搜索指定项目右侧的项目。

注意:此参数目前仅在 wxMSW 中受支持,在其他平台上将被忽略。

state 可以是以下各项的位列表

  • wxLIST_STATE_DONTCARE:不关心状态是什么。

  • wxLIST_STATE_DROPHILITED:该项目表示它是一个放置目标。

  • wxLIST_STATE_FOCUSED:该项目具有焦点。

  • wxLIST_STATE_SELECTED:该项目被选中。

  • wxLIST_STATE_CUT:该项目被选为剪切和粘贴操作的一部分。

链接到此函数

getSelectedItemCount(This)

查看源代码
-spec getSelectedItemCount(This) -> integer() when This :: wxListCtrl().

返回列表控件中选定项目的数量。

-spec getTextColour(This) -> wx:wx_colour4() when This :: wxListCtrl().

获取列表控件的文本颜色。

-spec getTopItem(This) -> integer() when This :: wxListCtrl().

当处于列表或报告视图时,获取最顶部的可见项目的索引。

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

返回控件中所有项目所占据的矩形。

换句话说,如果控件的客户端大小等于此矩形的大小,则无需滚动条,也不会留下任何可用空间。

请注意,此函数仅在图标和小图标视图中起作用,而不在列表或报表视图中起作用(这是本机 Win32 控件的限制)。

-spec hitTest(This, Point) -> Result
                 when
                     Result :: {Res :: integer(), Flags :: integer(), PtrSubItem :: integer()},
                     This :: wxListCtrl(),
                     Point :: {X :: integer(), Y :: integer()}.

确定指定点处是否存在项目(如果有),并在 flags 中提供详细信息。

返回项目的索引,如果指定点没有项目,则返回 wxNOT_FOUND

flags 将是以下标志的组合

  • wxLIST_HITTEST_ABOVE:在控件的客户区域之上。

  • wxLIST_HITTEST_BELOW:在控件的客户区域之下。

  • wxLIST_HITTEST_TOLEFT:在控件的客户区域的左侧。

  • wxLIST_HITTEST_TORIGHT:在控件的客户区域的右侧。

  • wxLIST_HITTEST_NOWHERE:在控件的客户区域内,但不在项目上方。

  • wxLIST_HITTEST_ONITEMICON:在项目的图标上。

  • wxLIST_HITTEST_ONITEMLABEL:在项目的文本上。

  • wxLIST_HITTEST_ONITEMSTATEICON:在项目的复选框上。

  • wxLIST_HITTEST_ONITEM:wxLIST_HITTEST_ONITEMICONwxLIST_HITTEST_ONITEMLABELwxLIST_HITTEST_ONITEMSTATEICON 的组合。

如果 ptrSubItem 不为 NULL 且 wxListCtrl 处于报表模式,则还将提供子项(或列)编号。此功能仅在 2.7.0 或更高版本中可用,目前仅在 wxMSW 下实现,并且主机系统上至少需要版本为 4.70 的 comctl32.dll,否则 ptrSubItem 中存储的值将始终为 -1。要将此功能编译到 wxWidgets 库中,您需要访问 Microsoft 提供的版本为 4.70 的 commctrl.h。

-spec insertColumn(This, Col, Heading) -> integer()
                      when This :: wxListCtrl(), Col :: integer(), Heading :: unicode:chardata();
                  (This, Col, Info) -> integer()
                      when This :: wxListCtrl(), Col :: integer(), Info :: wxListItem:wxListItem().

对于报告视图模式(仅限),插入一列。

有关更多详细信息,请参见 setItem/5。另请参见 insertColumn/4 重载,它通常是此方法的更方便的替代方法,以及对此方法如何解释项目宽度的说明。

-spec insertColumn(This, Col, Heading, [Option]) -> integer()
                      when
                          This :: wxListCtrl(),
                          Col :: integer(),
                          Heading :: unicode:chardata(),
                          Option :: {format, integer()} | {width, integer()}.

对于报告视图模式(仅限),插入一列。

在报表视图模式下,在给定位置将一个新列插入列表控件中,并指定其最常见的属性。

请注意,要设置列的图像,您需要使用 insertColumn/4 重载,并在项目掩码中指定 ?wxLIST_MASK_IMAGE。

返回:插入列的索引;如果添加失败,则返回 -1。

链接到此函数

insertItem(This, Info)

查看源代码
-spec insertItem(This, Info) -> integer() when This :: wxListCtrl(), Info :: wxListItem:wxListItem().

插入一个项目,如果成功则返回新项目的索引,否则返回 -1。

-spec insertItem(This, Index, ImageIndex) -> integer()
                    when This :: wxListCtrl(), Index :: integer(), ImageIndex :: integer();
                (This, Index, Label) -> integer()
                    when This :: wxListCtrl(), Index :: integer(), Label :: unicode:chardata().

插入一个字符串项目。

链接到此函数

insertItem(This, Index, Label, ImageIndex)

查看源代码
-spec insertItem(This, Index, Label, ImageIndex) -> integer()
                    when
                        This :: wxListCtrl(),
                        Index :: integer(),
                        Label :: unicode:chardata(),
                        ImageIndex :: integer().

插入一个图像/字符串项目。

-spec new() -> wxListCtrl().
-spec new(Parent) -> wxListCtrl() when Parent :: wxWindow:wxWindow().
-spec new(Parent, [Option]) -> wxListCtrl()
             when
                 Parent :: wxWindow:wxWindow(),
                 Option ::
                     {winid, integer()} |
                     {pos, {X :: integer(), Y :: integer()}} |
                     {size, {W :: integer(), H :: integer()}} |
                     {style, integer()} |
                     {validator, wx:wx_object()} |
                     {onGetItemText, function()} |
                     {onGetItemAttr, function()} |
                     {onGetItemColumnImage, function()}.
链接到此函数

refreshItem(This, Item)

查看源代码
-spec refreshItem(This, Item) -> ok when This :: wxListCtrl(), Item :: integer().

重新绘制给定的 item

这仅对虚拟列表控件有用,因为如果不调用此函数,即使底层数据发生更改,项目的显示值也不会更改。

参见:refreshItems/3

链接到此函数

refreshItems(This, ItemFrom, ItemTo)

查看源代码
-spec refreshItems(This, ItemFrom, ItemTo) -> ok
                      when This :: wxListCtrl(), ItemFrom :: integer(), ItemTo :: integer().

重新绘制 itemFromitemTo 之间的项目。

起始项目必须小于或等于结束项目。

refreshItem/2 一样,这仅对虚拟列表控件有用。

链接到此函数

scrollList(This, Dx, Dy)

查看源代码
-spec scrollList(This, Dx, Dy) -> boolean() when This :: wxListCtrl(), Dx :: integer(), Dy :: integer().

滚动列表控件。

如果在图标、小图标或报表视图模式下,dx 指定要滚动的像素数。如果在列表视图模式下,dx 指定要滚动的列数。dy 始终指定要垂直滚动的像素数。

注意:此方法目前仅在 Windows 版本中实现。

链接到此函数

setBackgroundColour(This, Col)

查看源代码
-spec setBackgroundColour(This, Col) -> boolean() when This :: wxListCtrl(), Col :: wx:wx_colour().

设置背景颜色。

请注意,可以使用 wxWindow:getBackgroundColour/1 函数检索当前背景颜色。

链接到此函数

setColumn(This, Col, Item)

查看源代码
-spec setColumn(This, Col, Item) -> boolean()
                   when This :: wxListCtrl(), Col :: integer(), Item :: wxListItem:wxListItem().

设置有关此列的信息。

有关更多信息,请参见 setItem/5

链接到此函数

setColumnWidth(This, Col, Width)

查看源代码
-spec setColumnWidth(This, Col, Width) -> boolean()
                        when This :: wxListCtrl(), Col :: integer(), Width :: integer().

设置列宽。

width 可以是像素宽度或 wxLIST_AUTOSIZE (-1) 或 wxLIST_AUTOSIZE_USEHEADER (-2)。

wxLIST_AUTOSIZE 将列调整为最长项目的长度。

wxLIST_AUTOSIZE_USEHEADER 将列调整为标题的长度 (Win32) 或 80 像素(其他平台)。

在小图标或普通图标视图中,col 必须为 -1,并且为所有列设置列宽。

链接到此函数

setImageList(This, ImageList, Which)

查看源代码
-spec setImageList(This, ImageList, Which) -> ok
                      when
                          This :: wxListCtrl(),
                          ImageList :: wxImageList:wxImageList(),
                          Which :: integer().

设置与控件关联的图像列表。

whichwxIMAGE_LIST_NORMALwxIMAGE_LIST_SMALLwxIMAGE_LIST_STATE 中的一个(最后一个未实现)。

此方法不拥有图像列表的所有权,您必须自行删除它。

参见:assignImageList/3

-spec setItem(This, Info) -> boolean() when This :: wxListCtrl(), Info :: wxListItem:wxListItem().

设置项目的数据。

使用 wxListItem 的掩码和状态掩码,您可以仅更改 wxListCtrl 项目的选定属性。

返回值:如果成功更新项目,则返回 true;如果因某种原因(例如,无效的项目索引)更新失败,则返回 false。

链接到此函数

setItem(This, Index, Column, Label)

查看源代码
-spec setItem(This, Index, Column, Label) -> boolean()
                 when
                     This :: wxListCtrl(),
                     Index :: integer(),
                     Column :: integer(),
                     Label :: unicode:chardata().

等效于 setItem(This, Index, Column, Label, [])

-spec setItem(This, Index, Column, Label, [Option]) -> boolean()
                 when
                     This :: wxListCtrl(),
                     Index :: integer(),
                     Column :: integer(),
                     Label :: unicode:chardata(),
                     Option :: {imageId, integer()}.

在特定列设置项目字符串字段。

返回值:如果成功更新项目,则返回 true;如果因某种原因(例如,无效的项目索引)更新失败,则返回 false。

链接到此函数

setItemBackgroundColour(This, Item, Col)

查看源代码
-spec setItemBackgroundColour(This, Item, Col) -> ok
                                 when This :: wxListCtrl(), Item :: integer(), Col :: wx:wx_colour().

设置此项目的背景颜色。

此函数仅在报表视图模式下有效。可以使用 getItemBackgroundColour/2 获取颜色。

链接到此函数

setItemColumnImage(This, Item, Column, Image)

查看源代码
-spec setItemColumnImage(This, Item, Column, Image) -> boolean()
                            when
                                This :: wxListCtrl(),
                                Item :: integer(),
                                Column :: integer(),
                                Image :: integer().

设置与项目关联的图像。

在报表视图中,您可以指定列。图像是与列表控件关联的图像列表中的索引。

链接到此函数

setItemCount(This, Count)

查看源代码
-spec setItemCount(This, Count) -> ok when This :: wxListCtrl(), Count :: integer().

此方法只能与虚拟列表控件一起使用。

它用于向控件指示它包含的项目数量。调用此函数后,主程序应准备好处理对各种项目回调(例如,wxListCtrl::OnGetItemText(在 wx 中未实现))的调用,这些回调针对从 0 到 count 范围内的所有项目。

请注意,此调用后控件不一定会重绘,因为如果向显示许多项目的控件添加或删除屏幕上不可见的项,则可能不希望重绘。如果您确实需要刷新显示,则可以手动调用 wxWindow:refresh/2

链接到此函数

setItemData(This, Item, Data)

查看源代码
-spec setItemData(This, Item, Data) -> boolean()
                     when This :: wxListCtrl(), Item :: integer(), Data :: integer().

将应用程序定义的数据与此项目关联。

请注意,此函数不能用于将指针与控件项目关联,请改用 SetItemPtrData()(在 wx 中未实现)。

链接到此函数

setItemFont(This, Item, Font)

查看源代码
-spec setItemFont(This, Item, Font) -> ok
                     when This :: wxListCtrl(), Item :: integer(), Font :: wxFont:wxFont().

设置项目的字体。

链接到此函数

setItemImage(This, Item, Image)

查看源代码
-spec setItemImage(This, Item, Image) -> boolean()
                      when This :: wxListCtrl(), Item :: integer(), Image :: integer().

等效于 setItemImage(This, Item, Image, [])

-spec setItemImage(This, Item, Image, [Option]) -> boolean()
                      when
                          This :: wxListCtrl(),
                          Item :: integer(),
                          Image :: integer(),
                          Option :: {selImage, integer()}.

设置与项目关联的未选中和选中图像。

图像是与列表控件关联的图像列表中的索引。

链接到此函数

setItemPosition(This, Item, Pos)

查看源代码
-spec setItemPosition(This, Item, Pos) -> boolean()
                         when
                             This :: wxListCtrl(),
                             Item :: integer(),
                             Pos :: {X :: integer(), Y :: integer()}.

设置项目在图标或小图标视图中的位置。

仅限 Windows。

链接到此函数

setItemState(This, Item, State, StateMask)

查看源代码
-spec setItemState(This, Item, State, StateMask) -> boolean()
                      when
                          This :: wxListCtrl(),
                          Item :: integer(),
                          State :: integer(),
                          StateMask :: integer().

设置项目状态。

stateMaskwxListItem 文档中描述的 wxLIST_STATE_XXX 常量的组合。对于 stateMask 中指定的每个位,根据 state 参数是否包含相同的位来设置或清除相应的状态。

因此,要选择一个项目,您可以使用,而要取消选择一个项目,您应该使用

如果可能,请考虑使用 wxListView,以避免处理这种容易出错且令人困惑的方法。

另请注意,与通常只有用户操作才会生成事件的规则相反,此方法在用于选择项目时会生成 wxEVT_LIST_ITEM_SELECTED 事件。

链接到此函数

setItemText(This, Item, Text)

查看源代码
-spec setItemText(This, Item, Text) -> ok
                     when This :: wxListCtrl(), Item :: integer(), Text :: unicode:chardata().

设置此项目的文本。

链接到此函数

setItemTextColour(This, Item, Col)

查看源代码
-spec setItemTextColour(This, Item, Col) -> ok
                           when This :: wxListCtrl(), Item :: integer(), Col :: wx:wx_colour().

设置此项目的颜色。

此函数仅在报表视图中有效。可以使用 getItemTextColour/2 获取颜色。

链接到此函数

setSingleStyle(This, Style)

查看源代码
-spec setSingleStyle(This, Style) -> ok when This :: wxListCtrl(), Style :: integer().

等同于 setSingleStyle(This, Style, [])

-spec setSingleStyle(This, Style, [Option]) -> ok
                        when This :: wxListCtrl(), Style :: integer(), Option :: {add, boolean()}.

添加或删除单个窗口样式。

链接到此函数

setTextColour(This, Col)

查看源代码
-spec setTextColour(This, Col) -> ok when This :: wxListCtrl(), Col :: wx:wx_colour().

设置列表控件的文本颜色。

链接到此函数

setWindowStyleFlag(This, Style)

查看源代码
-spec setWindowStyleFlag(This, Style) -> ok when This :: wxListCtrl(), Style :: integer().

设置整个窗口样式,删除所有项目。

链接到此函数

sortItems(This, SortCallBack)

查看源代码
-spec sortItems(This :: wxListCtrl(), SortCallBack) -> boolean()
                   when SortCallBack :: fun((integer(), integer()) -> integer()).