15

私はPyGtkを学んでいます。1列の単純なツリービューがあり、リストからそのツリービューのアイテムを取得します。

ツリービューで選択したアイテムの値を取得するにはどうすればよいですか?

4

1 に答える 1

26

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)
于 2011-10-29T11:19:15.350 に答える