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



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
-~----------~----~----~----~------~----~------~--~---