ruby-gnome2-hiki-pt_BR****@sourc*****
ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 10日 (土) 05:45:00 JST
------------------------- REMOTE_ADDR = 200.216.146.35 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-treeview-model ------------------------- = ((<Gtk::TreeModels|Gtk::TreeModel>)) para Armazenamento de Dados: Gtk::ListStore e Gtk::TreeStore {{link "tut-treeview-components", nil, "tut-treeview", "tut-treeview-model-data"}} importante saber o que o Gtk::TreeModel e o que ele n$Bco(B Gtk::TreeModel basicamente apenas uma 'interface' para o armazenador de dados, significando que ele um conjunto padronizado de m$Bit(Bodos que permitem um componente Gtk::TreeView (e o programador da aplica$Bgc(Bo) a perguntar certas caracter$Bms(Bticas de um armazenador de dados, por exemplo, quantas linhas existem, quais linhas tem filhos, e quantos filhos uma linha em particular tem. Ele tamb$Bim(B prov$Bim(B m$Bit(Bodos para recuperar os dados de um armazenador de dados, e diz para o "tree view" que tipo de dado estarmazenado no "model". Todo armazenador de dados precisa implementar a interface de Gtk::TreeModel e prover esses m$Bit(Bodos. O Gtk::TreeModel sozinho prov$Bim(B apenas uma maneira de perguntar as caracter$Bms(Bticas de um armazenador de dados e a recuperar os dados existentes, ele n$Bco(B prov$Bim(B uma maneira de remover ou adicionar linhas para o armazenador. Isso feito u sando os m$Bit(Bodos espec$Bmf(Bicos do armazenador. A Gtk+ vem com dois armazenadores de dados (models): Gtk::ListStore e Gtk::TreeStore. Como os nomes indicam, o Gtk::ListStore usado para listas simples de itens de dados onde os itens n$Bco(B tem rela$Bgu(Bes pai-filho de hierarquia, e o Gtk::TreeStore usado para estruturas de dados como de $Bar(Bvore, onde os items podem ter rela$Bgu(Bes pai-filho. Uma lista de arquivos em um diret$Bsr(Bio seria um exemplo de uma estrutura de lista simples, enquanto uma $Bar(Bvore de diret$Bsr(Bio seria um exemplo para uma estrutura de $Bar(Bvore. Uma lista basicamente apenas um caso especial de uma $Bar(Bvore com nenhum dos itens tendo qualquer filho, assim algu$Bim(B poderia usar um armazenador de $Bar(Bvore para manter uma lista simples de itens tamb$Bim(B. A $Bzn(Bica raz$Bco(B que pela qual o Gtk::ListStore existe com a finalidade de prover uma interface mais f$Bac(Bil que n$Bco(B precisa lidar com rela$Bgu(Bes pai-filho, e porque uma lista simples pode ser otimizada para o caso especial onde nenhum filho existe, o qual a torna mais r$Bap(Bida e eficiente. As implementa$Bgu(Bes de "model" de $Bar(Bvore como Gtk::ListStore e Gtk::TreeStore cuidar$Bco(B do lado do "view" para vocuma vez que voctenha configurado o Gtk::TreeView para mostrar o que vocdeseja. Se vocmudar os dados em um armazenador, o "model" notificaro "tree view" e o seu visualizador de dados seratualizado. Se voc adicionar ou remover linhas, o "model" tamb$Bim(B sernotificaro armazenador, e a sua linha aparecerou desaparecerdo visualizador tamb$Bim(B.