如何将gtk.ListStore项与我自己的模型相关联

时间:2010-06-13 16:09:10

标签: python pygtk gtktreeview

我有一个Project对象列表,我在GtkTreeView中显示。当用户双击TreeView中项目的行时,我正在尝试打开一个包含项目详细信息的对话框。

现在我通过get_selection()从TreeView(项目名称)中获取所选值,并在我自己的列表中按名称搜索该项目,以使用我自己的模型对选择进行核心化。 / p>

然而,这感觉不太正确(另外,它假设项目的名称是唯一的),我想知道是否有更优雅的方式。

2 个答案:

答案 0 :(得分:1)

不使用默认型号。您可以尝试使用专门编写的Py-gtktree models在后端和演示文稿中使用相同的对象。

顺便提一下,它的文档概述了使用标准模型(即根本不使用Py-gtktree)的另一种方法,但我不会称之为优雅。

答案 1 :(得分:1)

我最终做的是扩展gtk.ListStore并使用我的自定义列表。我还劫持了append()方法,这样它不仅会将[str,str等]附加到ListStore中,而且还会扩展ListStore类的自定义列表属性中的实际模型。

然后,当用户双击该行时,我按ListStore中的行索引获取所请求的模型,该索引对应于自定义列表中的模型索引。