Forum und email

Зареждане само част от файл .glade

При големи проекти е възможно да дефинирате много прозорци във един единствен файл .glade, и всички те ще бъдат заредени със зареждането на файла .glade. Това обаче: a) забавя стартирането на вашата програма и б) веднага ще изобрази всички прозорци ако не зададен параметъра за видимост да бъде "скрит". Продължавайки нататък, може дори да ви се прииска чрез signal_autoconnect_instance() само част от файлът .glade да е обект, а друга част от този файл да бъде свързана към друг обект.

Решението на този пробелм е във вторият параметър на конструктура GladeXML: Прехвърлете id само на така наречения root уйджет и само тази част от .glade файла ще бъде зареден.

Пример 4.6. Частично зареждане на файл .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);
?>