[ruby-gnome2-doc-cvs] [Hiki] update - tips_lazy_treeview

Back to archive index

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 11日 (日) 12:59:11 JST


-------------------------
REMOTE_ADDR = 200.216.145.78
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tips_lazy_treeview
-------------------------
- {{link nil, "Ruby-GNOME2+Tips", nil, nil}}
- 
  = Criando um TreeView "lazy"
+ {{link nil, "Ruby-GNOME2+Tips", nil, nil}}
  
  Em algumas aplica$Bnw(Bes, encher uma $BaS(Bvore inteira com dados para serem mostrados por um Gtk::TreeView pode ser "caro" (em termos de recursos) para fazlo tudo de uma vez. Gra$BmB(Bs que poss$ByW(Bel criar um gerenciador (handler) de sinal que enche as fileiras (rows) filhas that quando elas s$BeP(B expandidas. O truque conseguir que o expansor de fileira apare$BmB(B sem sem qualquer fileira filha real.  O jeito mais f$BaD(Bil de conseguir isso criar uma fileira "falsa" (dummy) que n$BeP(B contem dado.
  
  Por exemplo, vamos criar um simples TreeStore, e adicionar uma $B(Bica fileira nele.
  
   model = Gtk::TreeStore.new(String)
   view = Gtk::TreeView.new(model)
   column = Gtk::TreeViewColumn.new("Coluna de Exemplo", 
                                     Gtk::CellRendererText.new, {:text => 1})
  
   iter = store.append(nil)
   iter[0] = 'Fileira Pai'
   store.append(iter)         # "Falso filho" (DUMMY)
  
  Ent$BeP(B n$B(B podemos criar um gerenciador de "fileira-expandida" que checa se a primeira fileira filha cont$BqN(B um valor real; se n$BeP(B cont$BqN(B, os dados verdadeiros ser$BeP(B adicionados.
  
   view.signal_connect("row-expanded") do |self, iter, path|
     child = iter.first_child
     if (! child[0])
       new_child = store.append(iter)
       new_child[0] = 'Fileira filha'
       store.remove(child)    # "Remove falso filho" (DUMMY)
     end
   end
  
  A ordem aqui importante. Se vocremover o "falso" filho antes de adicionar dados reais, a fileira acabarsem filho algum e nunca serexpandida.
  
  ((<Masao>)) escreveu um pequeno navegador de $BaS(Bvore de $BaS(Bquivo que demonstra um uso pr$BaU(Bico dessa t$BqD(Bnica: {{attach_anchor("fileview.rb")}}
  
  == Log de Altera$Bnw(Bes
  :2003-10-21 Matthew Berg
   Log de Altera$Bnw(Bes adicionado
  :2003-10-20 Matthew Berg
   Corre$Bnw(Bes de terminologias
  :2003-10-20 Matthew Berg
   Vers$BeP(B inicial
  
  Autor da Tradu$Bne(Bo para Portugu$BsT(B: ((<Joao Pedrosa|jpedrosa>))





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