gpt4 book ai didi

python - ListCtrl - wxPython/Python

转载 作者:太空宇宙 更新时间:2023-11-03 12:25:43 24 4
gpt4 key购买 nike

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

示例:假设 ListCtrl 上的列是“名称”和“描述”:

self.lc = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
self.lc.InsertColumn(0, 'Name')
self.lc.InsertColumn(1, 'Description')

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

num_items = self.lc.GetItemCount()
self.lc.InsertStringItem(num_items, "Randomname")
self.lc.SetStringItem(num_items, 1, "Some description here")

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

所以我想添加一些未显示在应用程序上但显示在项目值上的内容,例如:

hiddendescription = "Somerandomthing"

还是不明白?好吧,假设我添加了一个按钮来添加一个项目和一些其他 TextCtrls 来设置参数,TextCtrls 参数是:

“名字”

“描述”

“隐藏描述”

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

很抱歉在这篇文章中解释了 1 次以上,但我想确保您理解我假装做的事情。

最佳答案

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

例如:

class MyObject(object):
def __init__(self, name, description, hidden_description):
self.name = name
self.description = description
self.hidden_description = hidden_description

然后在你的应用程序中:

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))

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

关于python - ListCtrl - wxPython/Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com