Как получить значение из выбранного элемента в виде дерева в PyGTK? - PullRequest
12 голосов
/ 29 октября 2011

Я учу PyGtk.У меня есть простое дерево с 1 столбцом, я получаю элементы для этого дерева из списка.

Как получить значение выбранного элемента в виде дерева?

1 Ответ

22 голосов
/ 29 октября 2011

Вы можете использовать метод 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 () , чтобы получить значение, соответствующее столбцу и ранее его итэру.восстановлено.

Пример:

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)
...