Lessico IT › Programmazione › Widget Composite e Constraint (Xt)

Widget Composite e Constraint (Xt)

Programmazione Svenska → Aggiornato: 2026-10-10

Le due classi di widget Xt a cui è permesso avere figli: Composite, che possiede l'elenco e ne decide la geometria, e Constraint, che in più appende risorse aggiuntive a ciascun figlio e rende così possibili contenitori di layout come XmForm.

Xt costruisce le interfacce come alberi, ma solo alcuni nodi possono generare rami. La classe base Core è un rettangolo con una finestra, colori e gestione degli eventi, e nient'altro. Composite la eredita e aggiunge un elenco di figli più tre metodi che un contenitore deve fornire: insert_child e delete_child per mantenere l'elenco, e geometry_manager per rispondere quando un figlio chiede una nuova dimensione o posizione. I figli vengono creati non gestiti e diventano visibili solo dopo XtManageChild, momento in cui viene chiamato change_managed e il contenitore ricalcola il layout. Un pulsante non si sposta mai da solo: chiede, e il genitore risponde sì, no oppure «così, piuttosto».

Constraint eredita da Composite e fa una cosa in più: ogni figlio riceve un blocco di risorse che appartengono al genitore ma vengono impostate sul figlio. È così che XmForm può avere XmNleftAttachment su un pulsante e il Form di Athena può avere fromHoriz, senza che la classe del pulsante sappia nulla di form. Il blocco è agganciato a core.constraints e viene riempito dall'initialize della classe Constraint. Lo schema, un contenitore che possiede le regole di layout ma le memorizza per ogni figlio, è proseguito nelle opzioni pack di Tk e nelle proprietà di layout di Qt. Shell è la quarta classe, un Composite con esattamente un figlio e una voce a sé.

← Torna al lessico