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); ?> |