【发布时间】:2014-09-22 20:22:27
【问题描述】:
我想从 wxPython 项目中添加到 wx.ListCtrl,这些项目具有与之关联的特定 ID。我怎样才能做到这一点?实际上,如何将任何数据关联到特定的 ListCtrl 项?
【问题讨论】:
标签: wxpython listitem listctrl
我想从 wxPython 项目中添加到 wx.ListCtrl,这些项目具有与之关联的特定 ID。我怎样才能做到这一点?实际上,如何将任何数据关联到特定的 ListCtrl 项?
【问题讨论】:
标签: wxpython listitem listctrl
我会创建一个字典,其中键是 ID,然后使用 ListCtrl 的 SetItemData 将键关联到列表控件项。然后,您可以使用 GetItemData 方法检索 ID 并将其与您的字典一起使用以获取数据。
或者您可以使用ListCtrlPyDataMixin,这样会更容易一些:
就个人而言,我真的很喜欢使用 ObjectListView 而不是直接的 wx.ListCtrl。以下是有关其工作原理的教程:
正如@nepix32 提到的,如果你有 wxPython 2.9 或更高版本,你也可以使用 wx.DataViewCtrl。
【讨论】:
基本上,您可以将long 与wx.ListCtrl .SetItemData 和.GetItemData 方法相关联(例如,用于数据库中的row_id。
但是,如果你有一个相当新的 wxPython (>= 2.9),你应该更好地使用wx.DataViewCtrl。它比 ListCtrl 更强大、更容易编程,并且带有一个PyDataViwModel,它允许您将对象映射到视图项。
更接近 ListCtrl 的是 wx.DataViewListCtrl,它与函数范围内的 wx.ListCtrl 非常相似。
【讨论】: