[ruby-gnome2-doc-cvs] [Hiki] create - tut-treeview-model-remove

Back to archive index

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 10日 (土) 09:42:21 JST


-------------------------
REMOTE_ADDR = 200.216.145.78
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-treeview-model-remove
-------------------------
= Removendo Linhas
{{link "tut-treeview-model-retrieve", "tut-treeview-model", "tut-treeview", "tut-treeview-view"}}

As linhas podem ser facilmente removidas com Gtk::ListStore#remove e Gtk::TreeStore#remove. A linha removida serautomaticamente removida do "tree view" tamb$BqN(B.

Remover linhas m$B(Btiplas de uma vez pode ser um pouco mais dif$ByD(Bil $B_T(B vezes, e exige algum pensamento sobre como fazlo da melhor maneira. Por exemplo, n$BeP(B poss$ByW(Bel navegar um armazenador com Gtk::TreeModel#each, verifique no bloco de c$B(Bigo se a linha dada deve ser removida e ent$BeP(B apeas a remova chamando um dos m$BqU(Bodos de remo$Bne(Bo do armazenador. Isso pode n$BeP(B funcionar, porque o "model" alterado de dentro do loop foreach, o qual pode de repente invalidar antigos "iters" de $BaS(Bvore v$BaM(Bidos no m$BqU(Bodo de each, e assim levar a resultados inesperados.

Eis um exemplo para uma maneira alternativa ao remover linhas m$B(Btiplas de uma vez (aqui a gente quer remover todas as linhas do armazenador que cont$BqN(B pessoas que nasceram ap$B(B 1980, mas isso poderia apenas tamb$BqN(B ser todas linhas selecionadas):

  underage = []
  liststore.each do |model,path,iter|
    (iter[2] > 1980) and underage.push(Gtk::TreeRowReference.new(model,path))
  end

  underage.each do |rowref|
    (path = rowref.path) and liststore.remove(liststore.get_iter(path))
  end

Gtk::ListStore#clear e Gtk::TreeStore#clear vem a calhar se vocquiser remover todas as linhas.

Tendo aprendido como adicionar, manipular e recuperar dados de um armazenador, o pr$B(Bimo passo conseguir esses dados mostrados em um componente Gtk::TreeView.





ruby-gnome2-cvs メーリングリストの案内
Back to archive index