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