[ruby-gnome2-doc-cvs] [Hiki] create - tut-treeview-renderer-example

アーカイブの一覧に戻る

ruby-gnome2-hiki-pt_BR****@sourc***** ruby-gnome2-hiki-pt_BR****@sourc*****
2004年 4月 10日 (土) 23:01:21 JST


-------------------------
REMOTE_ADDR = 200.216.145.78
REMOTE_HOST = 
        URL = http://ruby-gnome2.sourceforge.jp/pt_BR/?tut-treeview-renderer-example
-------------------------
= Um Exemplo Funcionando
{{link "tut-treeview-renderer-types", "tut-treeview-renderer", "tut-treeview", "tut-treeview-renderer-bold"}}

Eis nosso exemplo bem do in$ByD(Bio novamente (embora com uma coluna adicional), apenas que os conte$B(Bos do "model" s$BeP(B renderizados apropriadamente na tela desta vez. Ambos, atributos e uma fun$Bne(Bo de dados de c$BqM(Bula s$BeP(B usados para prop$B(Bitos de demonstra$Bne(Bo.

  require 'gtk2'

  treestore = Gtk::TreeStore.new(String, String, Integer)

  # Adiciona uma linha de n$ByW(Bel superior e a preenche com alguns dados
  parent = treestore.append(nil)
  parent[0] = "Ana"
  parent[1] = "Maria"

  # Adiciona uma segunda linha de n$ByW(Bel superior e a preenche com alguns dados
  parent = treestore.append(nil)
  parent[0] = "Manuela"
  parent[1] = "Silva"
  parent[2] = 1962

  # Adiciona um filho a segunda linha de n$ByW(Bel superior e a preenche com alguns dados
  child = treestore.append(parent)
  child[0] = "Manuelita"
  child[1] = "Souza"
  child[2] = 1985

  view = Gtk::TreeView.new(treestore)
  view.selection.mode = Gtk::SELECTION_NONE

  # Cria um renderizador
  renderer = Gtk::CellRendererText.new

  # Adiciona uma coluna usando nosso renderizador
  col = Gtk::TreeViewColumn.new("Primeiro Nome", renderer, :text => 0)
  view.append_column(col)

  # Cria outro renderizador e configura sua propriedade "weight" (peso)
  renderer = Gtk::CellRendererText.new
  renderer.weight = Pango::FontDescription::WEIGHT_BOLD

  # Adiciona uma coluna usando o segundo renderizador
  col = Gtk::TreeViewColumn.new("$BZl(Btimo Nome", renderer, :text => 1)
  view.append_column(col)

  # Cria um $Bzl(Btimo renderizador e configura a cor de texto para vermelho
  renderer = Gtk::CellRendererText.new
  renderer.foreground = "red"

  # Adiciona uma coluna usando o terceiro renderizador
  col = Gtk::TreeViewColumn.new("Idade", renderer)
  view.append_column(col)

  # Cria uma fun$Bgc(Bo de dados de c$Bil(Bula para calcular a idade
  col.set_cell_data_func(renderer) do |col, renderer, model, iter|
    year_now = 2004 # Para economizar c$Bsd(Bigo que n$Bco(B relevante para o exemplo
    year_born = iter[2]

    if (year_born <= year_now) && (year_born > 0)
      renderer.text = sprintf("%i anos", year_now - year_born)
      # renderiza na cor de texto padr$Bco(B se a gente sabe a idade
      renderer.foreground_set = false
    else
      renderer.text = "idade desconhecida"
      # renderiza com a cor de texto que a gente configurou anteriormente se a gente n$Bco(B sabe a idade
      renderer.foreground_set = true
    end
  end

  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








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