我想知道是否可以以某种方式将隐藏的 id 与列表框中的每个条目一起存储。原因是我有一个表,其中包含来自数据库的唯一 ID(用户不可见,但用于唯一标识每个记录)我将表缓存在内存中并使用键入的字典身份证号码
我想创建一个列表框,它允许我选择其中一条记录 - 显示的文本不是唯一的 ID,而是一个描述性字段(例如“名称”),该字段可能是唯一的,但这不是强制的,并且有上面没有索引。例如,如果我有:
Id Name
-- ----
2 Rod
5 Jane
15 Freddy
然后选择Jane
,我会以某种方式能够轻松访问 id5
我的问题是我找不到关联唯一 id 的方法(5
)与选择(Jane
)这样我就可以轻松识别缓存的记录。我知道我可以使用控制变量,但这只是给了我列表中所有字符串的列表 - 不是我想要的。此外,索引(例如插入索引)对于此目的似乎并不可靠。
我设法做到这一点的唯一方法是使用另一个字典将名称映射到 ID。由于多种原因,这并不是最优的。
我在这里错过了什么吗?有更简单的方法吗?
将您的 id 保存在列表中,然后使用.curselection()
只要保持顺序相同,索引即可将它们映射回行 ID。
在你的例子中,Jane
是您列表中的第二个选择,因此如果选择.curselection()
回报1
。如果你有一个rowids
以同样的顺序列出,rowids[1]
将5
:
>>> rowids = [2, 5, 15]
>>> rowids[listbox.curselection()]
5
比将名称映射到字典中的 rowid 更有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)