首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListCtrl - wxPython / Python

ListCtrl - wxPython / Python
EN

Stack Overflow用户
提问于 2010-04-17 04:46:26
回答 4查看 5.2K关注 0票数 3

我的问题是,我们是否可以给某个项目分配/绑定一些值,并隐藏那个值(或者我们是否可以用另一种方式做同样的事情)。

示例:假设ListCtrl上的列是"Name“和"Description":

代码语言:javascript
复制
self.lc = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
self.lc.InsertColumn(0, 'Name')
self.lc.InsertColumn(1, 'Description')

当我添加一个项目时,我想让它们显示名称参数和描述:

代码语言:javascript
复制
num_items = self.lc.GetItemCount()
        self.lc.InsertStringItem(num_items, "Randomname")
        self.lc.SetStringItem(num_items, 1, "Some description here")

现在,我想要做的基本上是为该项目分配一些未显示的内容,以便稍后可以在应用程序上访问。

因此,我想添加一些在应用程序上没有显示,但在项目价值上显示的内容,如:

代码语言:javascript
复制
hiddendescription = "Somerandomthing"

还是不明白吗?好吧,假设我添加了一个按钮,用来添加一个带有其他参数的项来设置参数,TextCtrls参数是:

“名称”

“描述”

“Hiddendescription描述”

然后用户填写此文本,然后单击按钮创建项目,我基本上只想显示名称和描述,并隐藏"HiddenDescription“,但这样做是为了以后可以使用它。

很抱歉在这篇文章中解释了不止一次,但我想确保你理解我假装做的事情。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-17 05:27:09

wxListCtrl允许您将任意数据与不会显示的项相关联-请阅读文档以了解以下方法:

SetItemData

GetItemData

FindItemData

wxListItem类还具有GetData和SetData方法。

票数 4
EN

Stack Overflow用户

发布于 2010-04-17 05:40:55

与使用ListCtrl作为数据结构不同,您可以保留一个单独的对象列表/字典,这些对象包含您需要的所有信息,并从其他数据结构刷新ListCtrl。

例如:

代码语言:javascript
复制
class MyObject(object):
    def __init__(self, name, description, hidden_description):
        self.name = name
        self.description = description
        self.hidden_description = hidden_description

然后在你的应用程序中:

代码语言:javascript
复制
def __init__(self):
    self.my_items = {}
    self.lc = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
    self.lc.InsertColumn(0, 'Name')
    self.lc.InsertColumn(1, 'Description')

def addItemToMyListCtrl(self, name, description, hidden):
    new_item = MyObject(name, description, hidden)
    self.my_items[name] = new_item
    self.lc.Append((new_item.name, new_item.description))

然后,当您想要使用您的附加数据时,您只需在字典中查找正确的项,您的数据就会在那里。

票数 7
EN

Stack Overflow用户

发布于 2010-04-17 05:00:20

您可以始终将隐藏列的宽度设置为零,这可能会实现您想要的效果。我刚刚在一个C++ (非wx)程序中尝试了一下,它工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2656017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档