我有一个Project对象列表,我在GtkTreeView
中显示。当用户双击TreeView中项目的行时,我正在尝试打开一个包含项目详细信息的对话框。
现在我通过get_selection()
从TreeView(项目名称)中获取所选值,并在我自己的列表中按名称搜索该项目,以使用我自己的模型对选择进行核心化。 / p>
然而,这感觉不太正确(另外,它假设项目的名称是唯一的),我想知道是否有更优雅的方式。
答案 0 :(得分:1)
不使用默认型号。您可以尝试使用专门编写的Py-gtktree models在后端和演示文稿中使用相同的对象。
顺便提一下,它的文档概述了使用标准模型(即根本不使用Py-gtktree)的另一种方法,但我不会称之为优雅。
答案 1 :(得分:1)
我最终做的是扩展gtk.ListStore并使用我的自定义列表。我还劫持了append()方法,这样它不仅会将[str,str等]附加到ListStore中,而且还会扩展ListStore类的自定义列表属性中的实际模型。
然后,当用户双击该行时,我按ListStore中的行索引获取所请求的模型,该索引对应于自定义列表中的模型索引。