Получить выбранный объект из TreeView

Я быстро работал над второстепенным (впервые) приложением и столкнулся с препятствием - как получить выбранную строку (данные) из TreeView? Данные в TreeView передаются из списка файлов в каталоге, и мне нужно знать, какие строки были выбраны (и, следовательно, какие файлы были). Каков наилучший способ сделать это?

Вот текущий код:

    self.treeview = self.builder.get_object("treeview")
    select = self.treeview.get_selection()
    select.connect("changed", self.on_tree_selection_changed)

def on_tree_selection_changed(selection):
    model, treeiter = self.treeview.selection-get()
    if treeiter != None:
        print "You selected", model[treeiter][0]
2
задан 10 October 2012 в 19:46

1 ответ

См. Здесь: http://python-gtk-3-tutorial.readthedocs.org/en/latest/treeview.html

. Вы можете получить выборку по событию: подключение объекта выделения к событию:

select = tree.get_selection()
select.connect("changed", on_tree_selection_changed)
def on_tree_selection_changed(selection):
    model, treeiter = selection.get_selected()
    if treeiter != None:
        print "You selected", model[treeiter][0]

Редактировать: чтобы установить это в классе окна, используйте следующий код:

class MyTreeView....
    ....Other Stuff...
        self.treeview = self.builder.get_object("treeview")
        select = self.treeview.get_selection()
        select.connect("changed", self.on_tree_selection_changed)

    def on_tree_selection_changed(self, selection):
        model, treeiter = selection.get_selected()
        if treeiter != None:
            print "You selected", model[treeiter][0]

Редактировать2: если вы хотите иметь несколько Выбранные строки необходимо использовать Gtk.TreeSelection.get_selected_rows(), который возвращает список Gtk.TreePath экземпляров всех выбранных строк.

0
ответ дан 10 October 2012 в 19:46

Другие вопросы по тегам:

Похожие вопросы: