Perché un widget appena aggiunto non hanno allocazione?
Domanda
Voglio aggiungere un widget alla parte inferiore di una finestra a scorrimento, quindi scorrere fino alla fine di quella finestra. Tuttavia, la finestra pensa che sia già in fondo, perché il widget non è ancora stato assegnato. Vale a dire, questo restituisce -1:
widget.get_allocation().y
Perché è questo? C'è un modo per forzare il widget da assegnare immediatamente, in modo che possa regolare la finestra di conseguenza? O c'è una soluzione migliore?
Soluzione
La soluzione migliore è quella di collegare a del widget size-allocare del segnale e rinviare il calcolo di scorrimento fino a quel momento.
Altri suggerimenti
Io non sono al 100% sicuro di capire quello che stai cercando di fare, ma ancora: Come minimo, è necessario realizzare il widget per farlo calcolare queste cose. Ma vedere la nota nella legata-alla documentazione, e indagare se questi modi non funzionano meglio.