PHP-GTK: Criando Aplicações Gráficas com PHP Adianti Framework para PHP PHP Programando com Orientação a Objetos Criando Relatórios com PHP

[PHP-GTK] gtkcombobox nao funciona com GtkListStore

Edivan Carneiro De Castro edivamcastro em yahoo.com.br
Segunda Fevereiro 11 18:39:38 BRST 2008


Gostaria de saber porque nao da certo inserir items em
um combobox atraves de um model(GtkListStore). Estou
usando glade e entao o append_text nao funciona no
combobox instanciado do glade.
faça um texte com o seguinte script para vcs
entenderem o meu problema:

<?
$window = new GtkWindow();
$window->set_position(Gtk::WIN_POS_CENTER);
$combo = new GtkCombobox();
$window->add($combo);
$model =new GtkListStore(GTK::TYPE_STRING);
$model->append(array('teste'));
$model->apend(array('teste2'));
$combo->set_model($model);
$window->show_all();
gtk::main();
?>






--- "Fernando H. Correa" <fernandohcorrea em gmail.com>
escreveu:

> Olá Edivan,
> 
> Tb estou tendo dificuldades para fazer o mesmo, só
> que achei outra solução.
> 
> Escrevi este pequeno artigo apenas para ficar
> registrado.
> 
> http://www.php-gtk.com.br/article_101
> 
> Mais seque o Fonte:
> 
> <?php
> class app {
> 
>     private $win = null;
>     private $stored = null;
>     private $combo = null;
> 
>     public function app(){
>         $this->buildGUI();
>         $this->startApp();
>     }
> 
>     private function buildGUI(){
> 
>         #Window
>         $this->createWin();
> 
>         #Stored do Combo
>         $this->createCombo();
> 
>         #Inicia App
>         $this->startApp();
> 
>     }
> 
>     private function createWin(){
>         $this->win = new GtkWindow();
>         $this->win->set_title("Combox: Fernando
> Henrique Correa");
>         $this->win->set_default_size(450,50);
>        
>
$this->win->connect('delete_event',array($this,'turnOffApp'));
>     }
> 
>     private function createCombo(){
>         $this->combo = GtkComboBox::new_text();
> 
>         $array_dados = $this->getDados();
>         foreach ($array_dados as $option) {
>             $this->combo->append_text($option);
>         }
> 
>         $this->combo->set_active(0);
>         $this->combo->connect('changed',
> array($this, 'changeCBox'));
>         $this->win->add($this->combo);
>     }
> 
>     public function changeCBox($lista_selection){
> 
>         $iter = $lista_selection->get_active_iter();
>         echo get_class($iter);
>         if($iter) {
>             $model = $this->combo->get_model();
>             get_class($model);
>             $cidade = $model->get_value($iter,0);
>             echo __METHOD__ ."> $cidade \n";
>         }
>         else {
>             echo __METHOD__ ."> Falha de
> selecao.\n";
>         }
>     }
> 
>     private function getDados(){
>         $array_dados = array(
>             0 => 'Sorocaba',
>             1 => 'Rio de Janeiro',
>             2 => 'Pindamonhangaba'
>         );
> 
>         return $array_dados;
>     }
> 
>     private function startApp(){
>         $this->win->show_all();
>     }
> 
>     public function turnOffApp(){
>         GTK::main_quit();
>     }
> }
> 
> new app();
> GTK::main();
> ?>
> 
> 
> 2008/2/7, Edivan Carneiro De Castro
> <edivamcastro em yahoo.com.br>:
> >
> > $estados = Estados::findAll();
> >
> > $lista = new GtkListStore(Gtk::TYPE_STRING);
> >
> > foreach($estados as $estado){
> >   $lista->append(array($estado->uf));
> > }
> >
> > $combo = new GtkCombobox;
> >
> > $combo->set_model($lista);
> >
> >
> > porem nao aparece nada no combobox. o que pode ser
> ?
> >
> >
> >       Abra sua conta no Yahoo! Mail, o único sem
> limite de espaço para
> > armazenamento!
> > http://br.mail.yahoo.com/
> >
> > _______________________________________________
> > Lista mailing list
> > Lista em php-gtk.com.br
> >
>
http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista
> >
> 
> 
> 
> -- 
> Fernando Henrique Correa
> ~//~//~//~//~//~//~//~//~//~//~
> 
> ANTES DE IMPRIMIR, PENSE EM SUA RESPONSABILIDADE E
> COMPROMISSO COM O MEIO
> AMBIENTE.
> JÁ IMPRIMIU!?! NÃO JOGUE FORA, UTILIZE O VERSO DA
> FOLHA COMO RASCUNHO!!
> > _______________________________________________
> Lista mailing list
> Lista em php-gtk.com.br
>
http://lists.php-gtk.com.br/cgi-bin/mailman/listinfo/lista
> 



      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/



More information about the Lista mailing list