ruby-gnome2-hiki-pt_BR****@sourc*****
ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 10日 (土) 20:29:46 JST
------------------------- REMOTE_ADDR = 200.216.145.78 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-treeview-renderer-renderer ------------------------- = Renderizadores de C$BqM(Bula {{link "tut-treeview-renderer", "tut-treeview-renderer", "tut-treeview", "tut-treeview-renderer-attributes"}} Diferentes renderizadores de c$BqM(Bula existem para diferentes prop$B(Bitos: * Gtk::CellRendererText renderiza valores de strings ou numbers ou boolean como strings de texto ("Silva", "99.32", "true") * Gtk::CellRendererPixbuf usado para mostrar imagens; imagens definidas pelo usu$BaS(Bio ou um dos $ByD(Bones de estoque inclu$ByE(Bos. * Gtk::CellRendererToggle mostra um valor boolean na forma de uma caixa de verifica$Bne(Bo ("check box") ou como um "radio button". * Gtk::CellEditable uma c$BqM(Bula especial que implementa c$BqM(Bulas edit$BaW(Beis (i.e., Gtk::Entry ou Gtk::SpinButton em um "tree view") Contrariamente a o que algu$BqN(B poderia pensar, um renderizador de c$BqM(Bula n$BeP(B renderiza apenas uma $B(Bica c$BqM(Bula, mas respons$BaW(Bel por renderizar parte ou tudo de uma coluna de "tree view" para cada linha. Ele basicamente inicia na primeira linha e renderiza a sua parte da coluna l Ent$BeP(B ele vai para a pr$B(Bima linha e renderiza a sua parte lnovamente. E assim por diante. Como um renderizador de c$BqM(Bula sabe o que renderizar ? Um objeto de renderizador de c$BqM(Bula tem certas 'propriedades' que est$BeP(B na documenta$Bne(Bo de refer$BsO(Bcia (exatamente igual a maioria dos outros objetos e componentes). Essas propriedades determinam o que o renderizador de c$BqM(Bula vai renderizar e como serrenderizado. Sempre que o renderizador de c$BqM(Bula chamado para renderizar uma certa c$BqM(Bula, ele olha nas suas propriedades e renderiza a c$BqM(Bula de acordo. Isso significa que sempre que vocconfigurar uma propriedade ou alterar uma propriedade de um renderizador de c$BqM(Bula, isso afetartodas as linhas que ser$BeP(B renderizadas ap$B(B a altera$Bne(Bo, atque vocaltere a propriedade novamente. Eis um exemplo simples e sem grande utilidade que demonstra esse comportamento e introduz algumas das propriedades mais comumente utilizadas de Gtk::CellRendererText: require 'gtk2' treestore = Gtk::TreeStore.new(String, String) # Adiciona uma linha de n$ByW(Ble superior e a deixa vazia parent = treestore.append(nil) # Adiciona um filho a linha de n$ByW(Bel superior e o preenche com alguns dados iter = treestore.append(parent) iter[0] = "Jos iter[1] = "Silva" # Adiciona um segundo filho a linha de n$ByW(Bel superior e o preenche com alguns dados iter = treestore.append(parent) iter[0] = "Ana" iter[1] = "Maria" view = Gtk::TreeView.new(treestore) view.selection.mode = Gtk::SELECTION_NONE # Cria um renderizador e configura a propriedade 'text' renderer = Gtk::CellRendererText.new renderer.text = "Boooo!" # Adiciona uma coluna usando o nosso renderizador col = Gtk::TreeViewColumn.new("Primeiro Nome", renderer) view.append_column(col) # Cria outro renderizador e configura a propriedade 'background' renderer = Gtk::CellRendererText.new renderer.background = "orange" # Adiciona uma coluna usando o segundo renderizador col = Gtk::TreeViewColumn.new("Segudo Nome", renderer) view.append_column(col) Gtk.init window = Gtk::Window.new(Gtk::Window::TOPLEVEL) window.signal_connect("delete_event") { Gtk.main_quit; exit! } window.add(view) window.show_all Gtk.main {{image_right "renderer.png"}} Parece que a tela do "tree view" estparcialmente correta e parcialmente incompleta. Por um lado o "tree view" renderiza o n$B(Bero correto de linhas (note como n$BeP(B existe laranja ou "orange" na direita ap$B(B a linha 3), e ele mostra a hierarquia corretamente (na esquerda), mas n$BeP(B mostra qualquer dos dados que armazenamos no "model". Isso porque n$BeP(B fizemos conex$BeP(B entre o que os renderizadores de c$BqM(Bula devem renderizar e os dados no "model". N$B(B simplesmente configuramos algumas propriedades de renderizador de c$BqM(Bula durante a inicializa$Bne(Bo, e o renderizador de c$BqM(Bula adere meticulosamente a aquelas propriedades configuradas.