Obtém o objeto selecionado do TreeView

1

Eu tenho trabalhado em um aplicativo menor (primeira vez) com rapidez e acerto um obstáculo - como obtenho a linha selecionada (os dados) de um TreeView? Os dados para o TreeView são passados de uma lista de arquivos em um diretório, e eu preciso saber quais linhas foram selecionadas (e, portanto, quais arquivos foram). Qual é a melhor maneira de fazer isso?

Este é o código atual:

    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]
    
por GoGoDo 09.10.2012 / 23:15

1 resposta

2

Veja aqui: link

Você pode obter a seleção em um evento conectando um objeto de seleção a um evento:

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]

Editar: Para configurar isso em uma classe de janela, use o seguinte código:

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]

Editar2: Se você quiser ter várias linhas selecionadas, precisará usar Gtk.TreeSelection.get_selected_rows() , que retorna uma lista de Gtk.TreePath instâncias de todas as linhas selecionadas.

    
por Ian B. 10.10.2012 / 01:48