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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[phpgtk] Re: problemas ao chamar janelas



poxa os codigos tão em casa...eu apenas criei um gtkliststore e um gtk model

a estrura deixei em uma função e a alimentação do treeview em oura 
função numa mesma classe

se até amanha não resolverem eu trago os codigo e posto aki....se ajudar 
blzz!


Wender Fernandes escreveu:
> como você resolveu Erick?
> Erick escreveu:
>   
>> é mais ou menso isso mesmo, ontem eu tava fazendo a mesma coisa dava erro
>>
>> eu fiz uma treeview com associados e quando clicasse preenchhesse outra 
>> treeview com os pagamentos dos associados.....dai tava carrengando 2 
>> vezes os objetos ! tirei e funcionou!
>>
>>
>> Bruno Gonçalves escreveu:
>>   
>>     
>>> Ai, não manjo muito de glade (pra mim é aquele perfuminho de banheiro 
>>> xD). Mas me parece que o problema ta nele hem.
>>>
>>> Pelo que parece vc não ta carregando outra vez o arquivo, certo?
>>> Por isso. Por que vc imagina, vc instancia o objeto da lista, adiciona 
>>> as colunas nela, da proxima vez, o objeto ja vai existir, e vc vai 
>>> pega-lo e adicionar as colunas novamente. Sacou? xD
>>>
>>> meio confusinho eu acho, mas é isso mesmo.
>>>
>>> - - -
>>> http://blog.scorninpc.com/
>>> Bruno Pitteli Gonçalves
>>> Desenvolvedor SAP B1 / WEB
>>> scorninpc@gmail.com <mailto:scorninpc@gmail.com>
>>> +55 018 97958674
>>>
>>>
>>> 2009/6/17 Wender Fernandes <wender.gnu@gmail.com 
>>> <mailto:wender.gnu@gmail.com>>
>>>
>>>     Não deu certo Bruno estou enviando o print da tela para vc ver o que
>>>     acontece. O problema se dá apenas na lista as colunas duplicam
>>>     cada vez
>>>     que a janela é chamada
>>>
>>>     e ese é o codigo
>>>
>>>     <?php
>>>     /**
>>>      * Classe responsavel pelo objeto tela
>>>      * de cadastro dos departamentos
>>>      *
>>>      */
>>>     class TelaDepartamentoClass {
>>>        private $departamento;
>>>        private $window;
>>>        static  $list_departamento=null;
>>>        static  $modelDepartamento=null;
>>>        private $salvar;
>>>        private $fechar;
>>>        private $allow;
>>>
>>>        function __construct() {
>>>            global $window;
>>>            global $glade;
>>>
>>>
>>>            $this->window = $glade->get_widget('window_departamento');
>>>            $this->modelDepartamento = null;
>>>            $this->modelDepartamento = new
>>>     GtkListStore(GObject::TYPE_OBJECT,GObject::TYPE_STRING,GObject::TYPE_STRING);
>>>
>>>            $this->departamento = $glade->get_widget('entry16');
>>>            $this->list_departamento = $glade->get_widget('treeview8');
>>>            $this->salvar = $glade->get_widget('button15');
>>>            $this->fechar = $glade->get_widget('button16');
>>>
>>>
>>>            /* inicio da lista de departamentos */
>>>
>>>     $this->list_departamento->set_model($this->modelDepartamento);
>>>            //$this->modelDepartamento->set_sort_column_id(1,
>>>     Gtk::SORT_DESCENDING);
>>>
>>>            $colunaDepartamento1 = null;
>>>            $colunaDepartamento2 = null;
>>>            $colunaDepartamento3 = null;
>>>
>>>            $colunaDepartamento1 = new GtkTreeViewColumn();
>>>            $colunaDepartamento2 = new GtkTreeViewColumn();
>>>            $colunaDepartamento3 = new GtkTreeViewColumn();
>>>
>>>            $colunaDepartamento2->set_sort_column_id(1);
>>>            $colunaDepartamento3->set_sort_column_id(2);
>>>
>>>            $colunaDepartamento1->set_title("--");
>>>            $colunaDepartamento2->set_title("Cod");
>>>            $colunaDepartamento3->set_title("Departamento");
>>>
>>>            $celulaDepartamento1 = null;
>>>            $celulaDepartamento2 = null;
>>>            $celulaDepartamento3 = null;
>>>
>>>            $celulaDepartamento1 = new GtkCellRendererPixbuf();
>>>            $celulaDepartamento2 = new GtkCellRendererText();
>>>            $celulaDepartamento3 = new GtkCellRendererText();
>>>
>>>            $colunaDepartamento1->pack_start($celulaDepartamento1,true);
>>>            $colunaDepartamento2->pack_start($celulaDepartamento2,true);
>>>            $colunaDepartamento3->pack_start($celulaDepartamento3,true);
>>>
>>>
>>>            $celulaDepartamento1->set_property("width",10);
>>>            $celulaDepartamento2->set_property("width",10);
>>>            $celulaDepartamento3->set_property("width",300);
>>>
>>>
>>>
>>>     $colunaDepartamento1->set_attributes($celulaDepartamento1,"pixbuf",0);
>>>          
>>>      $colunaDepartamento2->set_attributes($celulaDepartamento2,"text",1);
>>>
>>>     $colunaDepartamento3->set_attributes($celulaDepartamento3,"text",2);
>>>
>>>            $this->list_departamento->append_column($colunaDepartamento1);
>>>            $this->list_departamento->append_column($colunaDepartamento2);
>>>
>>>     $this->list_departamento->append_column($colunaDepartamento3);
>>>            /* fim da lista de departamentos */
>>>
>>>
>>>            /* instancia os objetos */
>>>            $keyevent = new KeyEventClass();
>>>            $keyevent->objeto = $this->window;
>>>            $system = new SystemClass();
>>>            $system->connect();
>>>
>>>
>>>     $this->window->connect("key-press-event",array($keyevent,"key_test"));
>>>
>>>     $this->fechar->connect_simple("clicked",array($system,"close_window"),$this->window);
>>>
>>>            $this->window->show_all();
>>>        }
>>>     }
>>>
>>>     ?>
>>>
>>>
>>>     Bruno Gonçalves escreveu:
>>>     > ah, saquei, cria as variaveis estaticas, e usa o unset, por que?
>>>     >
>>>     > por que suas variaveis são locais certo?
>>>     > se vc usar statica, elas continuam apontando para o mesmo lugar na
>>>     > memoria, assim se vc der o unset, ela limpa.
>>>     >
>>>     > vc pode abrir 2 $Curso por exemplo? ao mesmo tempo?
>>>     >
>>>     > não é? se não não teria problema recriar os objetos
>>>     >
>>>     > - - -
>>>     > http://blog.scorninpc.com/
>>>     > Bruno Pitteli Gonçalves
>>>     > Desenvolvedor SAP B1 / WEB
>>>     > scorninpc@gmail.com <mailto:scorninpc@gmail.com>
>>>     <mailto:scorninpc@gmail.com <mailto:scorninpc@gmail.com>>
>>>     > +55 018 97958674
>>>     >
>>>     >
>>>     > 2009/6/17 Wender Fernandes <wender.gnu@gmail.com
>>>     <mailto:wender.gnu@gmail.com>
>>>     > <mailto:wender.gnu@gmail.com <mailto:wender.gnu@gmail.com>>>
>>>     >
>>>     >
>>>     >     no objeto Bruno?
>>>     >
>>>     >     Bruno Gonçalves escreveu:
>>>     >     > da um unset antes de abrilos, funciona?
>>>     >     >
>>>     >     > function carregar($botao){
>>>     >     >    if($botao==1){
>>>     >     > unset($Curso);
>>>     >     >        $Curso = new CursoClass();
>>>     >     >    }
>>>     >     >    elseif($botao==2){
>>>     >     > unset($Colaborador);
>>>     >     >        $Colaborador = new ColaboradorClass();
>>>     >     >    }
>>>     >     >    elseif($botao==3){
>>>     >     > unset($TelaEmpresa);
>>>     >     >        $TelaEmpresa = new TelaEmpresaClass();
>>>     >     >    }
>>>     >     >    elseif($botao==6){
>>>     >     > unset($TelaDepartamento);
>>>     >     >        $TelaDepartamento = new TelaDepartamentoClass();
>>>     >     >    }
>>>     >     > }
>>>     >     >
>>>     >     > - - -
>>>     >     > http://blog.scorninpc.com/
>>>     >     > Bruno Pitteli Gonçalves
>>>     >     > Desenvolvedor SAP B1 / WEB
>>>     >     > scorninpc@gmail.com <mailto:scorninpc@gmail.com>
>>>     <mailto:scorninpc@gmail.com <mailto:scorninpc@gmail.com>>
>>>     >     <mailto:scorninpc@gmail.com <mailto:scorninpc@gmail.com>
>>>     <mailto:scorninpc@gmail.com <mailto:scorninpc@gmail.com>>>
>>>     >     > +55 018 97958674
>>>     >     >
>>>     >     >
>>>     >     > 2009/6/17 Wender Fernandes <wender@navesa.com.br
>>>     <mailto:wender@navesa.com.br>
>>>     >     <mailto:wender@navesa.com.br <mailto:wender@navesa.com.br>>
>>>     >     > <mailto:wender@navesa.com.br <mailto:wender@navesa.com.br>
>>>     <mailto:wender@navesa.com.br <mailto:wender@navesa.com.br>>>>
>>>     >     >
>>>     >     >
>>>     >     >     Pessoal é o seguinte. Tenho uma janela principal que
>>>     chama as
>>>     >     >     janelas à
>>>     >     >     medida em que os botoes sao clicados.
>>>     >     >
>>>     >     >     function carregar($botao){
>>>     >     >        if($botao==1){
>>>     >     >            $Curso = new CursoClass();
>>>     >     >        }
>>>     >     >        elseif($botao==2){
>>>     >     >            $Colaborador = new ColaboradorClass();
>>>     >     >        }
>>>     >     >        elseif($botao==3){
>>>     >     >            $TelaEmpresa = new TelaEmpresaClass();
>>>     >     >        }
>>>     >     >        elseif($botao==6){
>>>     >     >            $TelaDepartamento = new TelaDepartamentoClass();
>>>     >     >        }
>>>     >     >     }
>>>     >     >
>>>     >     >     esse trecho de codigo mostra como estou carregando as
>>>     >     janelas. Cada
>>>     >     >     classe é responsavel por uma janela. Quando eu abro a
>>>     >     primeira vez
>>>     >     >     funciona direitinho, os objetos sao  criados e os campos
>>>     >     exibidos. Mas
>>>     >     >     cada vez que instancio a classe os objetos duplicam. Teria
>>>     >     como eu
>>>     >     >     eliminar os objetos para que eles sejam criados como
>>>     da primeira
>>>     >     >     vez que
>>>     >     >     executo o programa?
>>>     >     >
>>>     >     >     --
>>>     >     >
>>>     >     >
>>>     >     >
>>>     >     >
>>>     >     >
>>>     >     >
>>>     >     >
>>>     >     > >
>>>     >
>>>     >
>>>     >
>>>     >
>>>     >
>>>     > >
>>>
>>>
>>>
>>>
>>>
>>>     
>>>       
>>     
>>   
>>     
>
>
> >
>   


--~--~---------~--~----~------------~-------~--~----~
Grupo PHP-GTK Brasil (http://www.php-gtk.com.br)
Para enviar mensagens, o e-mail é phpgtk@googlegroups.com
Para cancelar a sua inscrição, o e-mail é phpgtk+unsubscribe@googlegroups.com
Mais opções na página do grupo: http://groups.google.com.br/group/phpgtk?hl=pt-BR
-~----------~----~----~----~------~----~------~--~---