[ruby-gnome2-doc-cvs] [Hiki] update - tut-treeview-renderer-renderer

アーカイブの一覧に戻る

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 11日 (日) 13:15:14 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"}}
+ {{image_right "en: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.





ruby-gnome2-cvs メーリングリストの案内
アーカイブの一覧に戻る