Forum und email

Carregando uma parte de um arquivo .glade

Em grandes projetos, você deve ter várias janelas definidas em seu arquivo .glade, e todas são carregadas ao carregar o arquivo .glade. Isto a) deixa mais lento o início da sua aplicação e b) mostra todas as janelas imediatamente, se você não definiu sua visibilidade como escondida no Glade. Além disso, você deve querer usar signal_autoconnect_instance() em apenas uma parte do arquivo .glade para um objeto, enquanto conectar outra parte em outro objeto.

A solução para este problema é o segundo parâmetro do construtor de GladeXML: Apenas passe o id do widget que será o raíz, e apenas esta parte do arquivo .glade será carregada.

Exemplo 4.6. Carregando parcialmente um arquivo .glade

<?php
//Loading a part of the glade file only

//We want "btnClose" to be the root of the widget tree to load
$glade = new GladeXML('helloglade.glade', 'btnClose');

//That will work
$btn = $glade->get_widget('btnClose');

//This will fail, as the window isn't loaded:
$window = $glade->get_widget('wndClose');
//Output is NULL
var_dump($window);
?>