如何从PyGTK中的树视图中的选定项获取值?

时间:2011-10-29 09:22:06

标签: python gtk pygtk gtktreeview

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

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

1 个答案:

答案 0 :(得分:22)

您可以使用gtk.TreeView.get_selection()方法获取gtk.TreeSelection

接下来,您应该使用gtk.TreeSelection.get_selected_rows()方法来获取TreeModel(ListStore)和所选项  路径。

然后,您可以使用gtk.TreeModel.get_iter()从路径中获取iter(由gtk.TreeSelection.get_selected_rows()方法返回)。

最后,您可以使用gtk.TreeModel.get_value()方法获取与该列相对应的值以及之前恢复的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)