如何在PyGTK中从TreeView的选定项中获取值?

16

我正在学习PyGtk。我有一个只有一列的简单树视图,从列表中获取树视图的项目。

如何获取树视图中所选项目的值?


请不要忘记接受我的答案(点击答案左侧的“正确”按钮),如果它适合您的话。谢谢! - Loïc G.
1个回答

27
你可以使用 gtk.TreeView.get_selection() 方法来获取 gtk.TreeSelection
接下来,你应该使用 gtk.TreeSelection.get_selected_rows() 方法来获取 TreeModel(即ListStore)和所选项目的路径。
然后,你可以使用 gtk.TreeModel.get_iter() 方法根据由 gtk.TreeSelection.get_selected_rows() 方法返回的路径获取迭代器(iter)。
最后,你可以使用 gtk.TreeModel.get_value() 方法来获取与先前恢复的列(column)和迭代器(iter)相对应的值。
示例:
def onSelectionChanged(tree_selection) :
    (model, pathlist) = tree_selection.get_selected_rows()
    for path in pathlist :
        tree_iter = model.get_iter(path)
        value = model.get_value(tree_iter,0)
        print value

listStore = gtk.ListStore(int)
treeview = gtk.TreeView()
treeview.set_model(listStore)
tree_selection = treeview.get_selection()
tree_selection.set_mode(gtk.SELECTION_MULTIPLE)
tree_selection.connect("changed", onSelectionChanged)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接