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.