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] GTK com Glade

Fernando Henrique Correa fernandohcorrea em gmail.com
Quinta Agosto 3 19:45:46 CDT 2006


Ola Lista,

Realmente não deu, alquem tem um exemplo de como pego duas janelas do glade,
retiro o objeto(vbox, ou gtktable) filho, e  atacho no vbox da outra??

2006/7/28, Diego do Nascimento Feitosa <dnfeitosa em gmail.com>:
>
>   No seu arquivo .glade, o "tblPontosAcesso" já está dentro do
> "vboxmain"??
>   Se estiver, basta apenas pegar o "vboxmain"... Você não precisa
> colocar o "tblPontosAcesso" dentro do container de novo.
>
>
> On 7/28/06, Fernando Henrique Correa <fernandohcorrea em gmail.com> wrote:
> > up^
> >
> > 2006/7/27, Fernando Henrique Correa <fernandohcorrea em gmail.com>:
> > >
> > > Eu disse que iria tentar, só que o erro me aparece: (main.php:12760):
> > Gtk-CRITICAL **: gtk_box_pack_start: assertion `child->parent == NULL'
> > failed
> > >
> > >
> > > <?
> > > if (!class_exists('gtk')) {
> > > die('Please load the php-gtk2 module in your php.ini' . "\r\n");
> > > }
> > >
> > > $glade = new GladeXML("gseg.glade");
> > >
> > > $main_win = $glade->get_widget("Main");
> > > $vboxmain = $glade->get_widget("vboxmain");
> > > $tblPntAcces = $glade->get_widget("tblPontosAcesso");
> > > $vboxmain->pack_start($tblPntAcces);
> > > GTK::main();
> > > ?>
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > 2006/7/27, Fernando Henrique Correa < fernandohcorrea em gmail.com>:
> > >
> > > >
> > > > Vou explorar isso mai tarde..!!!
> > > > Obrigado ALL.
> > > >
> > > >
> > > > 2006/7/27, Diego do Nascimento Feitosa <dnfeitosa em gmail.com >:
> > > >
> > > > > Ah certo!!
> > > > > Bom, aí são 2 casos:
> > > > > Com relação às duas janelas, no Glade, você tem que colocar "No"
> na
> > > > > propriedade "visible" da aba "Common", das propriedades da Window.
> > > > >
> > > > > Já o segundo caso, o que acontece, é que você extendeu a classe,
> pegou
> > > > > os inputs, e a table, mas a table não está contida no lugar
> correto
> > > > > internamente na classe. Se o seu problema é a conexão dos inputs,
> eu
> > > > > sugiro que você não crie a classe FuncionarioForm como uma
> extensão de
> > > > > GtkTable; ao invés disso, que você coloque um método getTable que
> > > > > retorne o seu "$this->table" pois ele já contém todas as
> referências
> > > > > aos objetos input em seus respectivos locais.
> > > > >
> > > > > Creio que assim funcionaria. ;)
> > > > >
> > > > > On 7/27/06, Fernando Henrique Correa <fernandohcorrea em gmail.com>
> > wrote:
> > > > > > Exatamente isso, só que agora vou dar mais detalhes do meu
> problema:
> > > > > >
> > > > > > Tenho uma classe onde monto meu FORM que herda de GtkTable, em
> > seguida tenho
> > > > > > a classe responsável por montar a janela principal, onde quero
> > adicionar o
> > > > > > objeto GtkTable produzido pela classe FuncionarioForm. O
> problema
> > está na
> > > > > > abertura da aplicação, quando abro, ela não agrega o  objeto e
> sim
> > abre duas
> > > > > > janelas, uma criada pelo MainApp e outra vinda do glade. Veja:
> > > > > >
> > > > > > class FuncionarioForm extends GtkTable{
> > > > > >
> > > > > >    function FuncionarioForm(){
> > > > > >                 parent::__construct();
> > > > > >
> > > > > >                 $this->glade = new
> > > > > >
> > GladeXML(_CLASSPATH."modulos/funcionarios/oper/cadfunc.glade");
> > > > > >
> > > > > >                 $this->table =
> > > > > > $this->glade->get_widget("table2");
> > > > > >
> > > > > >                 //Imputs
> > > > > >                 $this->imputNome =
> > > > > > $this->glade->get_widget("imputNome");
> > > > > >                 $this->imputEndereco =
> > > > > > $this->glade->get_widget("imputEndereco");
> > > > > >                 $this->imputNumero =
> > > > > > $this->glade->get_widget("imputNumero");
> > > > > >                 $this->imputDDD =
> > > > > > $this->glade->get_widget("imputDDD");
> > > > > >                 $this->imputTelefone =
> > > > > > $this->glade->get_widget("imputTelefone");
> > > > > >                 $this->imputSalario =
> > > > > > $this->glade->get_widget("imputSalario");
> > > > > >
> > > > > >                 //Buttons
> > > > > >                 $this->btnSalvar =
> > > > > > $this->glade->get_widget("btnSalvar");
> > > > > >
> > $this->btnSalvar->connect_simple('clicked',
> > > > > > array($this,'salvar'));
> > > > > >
> > > > > >    }
> > > > > >    function salvar(){ ... }
> > > > > >
> > > > > > }
> > > > > >
> > > > > > class MainApp{
> > > > > >
> > > > > >         private $janela;
> > > > > >         private $accel_grupo;
> > > > > >         private $modulo_start;
> > > > > >
> > > > > >         public function MainApp(){
> > > > > >                 $this->janela = new GtkWindow;
> > > > > >
> > $this->janela->set_title("Funcionários");
> > > > > >
> > $this->janela->set_default_size(800,600);
> > > > > >
> > > > > >
> > $this->janela->set_type_hint(GDK_WINDOW_TYPE_HINT_DIALOG);
> > > > > >                 $this->janela->set_decorated(true);
> > > > > >
> > > > > >
> > $this->janela->connect_simple('destroy',
> > > > > > array($this,'sair'));
> > > > > >                 $this->modulo_start = new FuncionarioForm();
> > > > > >
> > $this->janela->add($this->modulo_start);
> > > > > >                 $this->janela->show_all();
> > > > > >         }
> > > > > >
> > > > > >         public function sair(){
> > > > > >                 Gtk::main_quit();
> > > > > >         }
> > > > > >  }
> > > > > > new MainApp();
> > > > > > GTK::main();
> > > > > >
> > > > > >
> > > > > >
> > > > > > Em 26/07/06, Diego do Nascimento Feitosa <diego em dnfeitosa.com >
> > escreveu:
> > > > > > >     Deixa eu ver se eu entendi:
> > > > > > >
> > > > > > >     Você tem uma interface montada no Glade e quer reutilizar
> > apenas um
> > > > > > > dos widgets que estão contidos lá no arquivo.glade?
> > > > > > >     Se for isso pode ser feito sim... sem nenhum problema.
> Quando
> > você
> > > > > > > faz um get_widget(), você retorna o objeto; é como se você o
> > tivesse
> > > > > > > criado na mão, daí é só aplicá-lo em qualquer window que você
> > queira.
> > > > > > >
> > > > > > >     []'s
> > > > > > >     Diego
> > > > > > >     www.dnfeitosa.com
> > > > > > >
> > > > > > >
> > > > > > > Fernando Henrique Correa wrote:
> > > > > > > > Olá,
> > > > > > > >
> > > > > > > > É possível eu criar uma inteface no Glade e obter apenas seu
> > conteúdo
> > > > > > > > e aplica-lo em outra Janela???
> > > > > > > >
> > > > > > > > algo assim:
> > > > > > > >
> > > > > > > > $window = new GtkWindow();
> > > > > > > >
> > > > > > > > $glade = new GtkGlade("...xyz.glade");
> > > > > > > >
> > > > > > > > $table = $glade->get_widget("table");
> > > > > > > >
> > > > > > > > $window->add($table);
> > > > > > > >
> > > > > > > > --
> > > > > > > > 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
> > > > > > > >
> > > > > > > _______________________________________________
> > > > > > > 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
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > []'s
> > > > > Diego
> > > > > www.dnfeitosa.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!!
> > >
> > >
> > >
> > >
> > > --
> > >
> > > 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!!
> >
> >
> >
> > --
> > 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
> >
> >
> >
>
>
> --
> []'s
> Diego
> www.dnfeitosa.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!!
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://lists.php-gtk.com.br/pipermail/lista/attachments/20060803/41cb735f/attachment-0001.htm


More information about the Lista mailing list