Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ScornInPC

[PHP-GTK] Apresentando dados em modo de arvore em GtkTreeView

Recommended Posts

Muitas vezes precisamos mostrar dados em forma de arvore, e encontrei uma solução bem simples de se fazer isso, utilizando GtkTreeView. Com ele, é possível mudar ícone dos nós, adicionar filhos ilimitados, e muito fácil configuração e manipulação. Veja um exemplo do que vamos estudar aqui:

 

 

Imagem Postada

 

A idéia é utilizar a estrutura normal de um GtkTreeView, porem adicionar os itens com o método append do Model. Este método possui como primeiro parâmetro, o Iter pai, se NULL, é um item da raiz. Veja o código abaixo, e veja como é simples.

 

<?php

   // Treeview
   $model = new GtkTreeStore(TYPE_STRING);
   $view = new GtkTreeView($model);
   
   $cell_renderer = new GtkCellRendererText();
   $view->append_column(
	  new GtkTreeViewColumn("GtkTreeView com filhos", $cell_renderer, "text", 0)
   );
   
   // Adiciona os dados do GtkTreeView
   $pai1 = $model->append(NULL, array("Pai 1"));
	  $model->append($pai1, array("Filho 1 do Pai 1"));
	  $model->append($pai1, array("Filho 2 do Pai 1"));
	  $model->append($pai1, array("Filho 3 do Pai 1"));
   
   $pai2 = $model->append(NULL, array("Pai 2"));
	  $model->append($pai2, array("Filho 1 do Pai 2"));
	  $filho2_pai2 = $model->append($pai2, array("Filho 2 do Pai 2"));
		 $model->append($filho2_pai2, array("Neto 1 do Pai 2"));
		 $model->append($filho2_pai2, array("Neto 2 do Pai 2"));
		 $model->append($filho2_pai2, array("Neto 3 do Pai 2"));
   
   $pai3 = $model->append(NULL, array("Pai 3"));
   
   // Scrolled
   $scrolled = new GtkScrolledWindow();
   $scrolled->add_with_viewport($view);
   $scrolled->set_policy( Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
		 
   // Window
   $window = new GtkWindow();
   $window->add($scrolled);
   $window->set_size_request(500, 500);
   $window->connect_simple("destroy", array(Gtk, main_quit));
   $window->show_all();
   
   
   
   Gtk::main();

Espero que gostem :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

com certeza isso pode vir a ser muito util em algumas aplicaçoes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, tentei fazer o exemplo mas não gera nada, fica a pagina em branco..

sou iniciante em php estou aprendendo sozinha.. e gostaria de fazer uma pagina apresentar meus dados do banco em forma de árvore.. dinâmica, para que ao clicar no item da arvore atualizar os dados num gráfico..

Para o exemplo preciso ter alguma coisa instalada...

 

Alguém poderia me ajudar ?

 

Desde já agradeço a atenção..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, vale lembrar que isso é GTK, não é pagina WEB ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.