TableWrapLayout-luokka

TableWrapLayout on ruudukkopohjainen asettelu, joka on hyvin samanlainen kuin widget-vakiotyökalujen joustava GridLayout. TableWrapLayout käyttää kuitenkin asettelun algoritmia, joka toimii HTML-taulukoiden tavoin. Se ottaa asiakasobjektin alueen leveyden huomioon ja kompensoi sitä suurentamalla lomaketta pystysuunnassa.

GridLayout- ja TableWrapLayout-luokilla on monia yhteneväisyyksiä. Molemmat järjestävät aliobjektit ruudukoiksi ja sisältävät asettelua koskevaa tietoa, joka ohjaa asettelua ohjausobjektien käsittelyssä. Molemmat myös ottavat vastaan vihjeitä esimerkiksi siitä, minkä ohjausobjektin pitää täyttää tyhjä tila.

Luokat kuitenkin eroavat merkittävästi siinä, miten ne aloittavat asettelun. TableWrapLayout lähtee sarakkeista. Se laskee jokaisen sarakkeen minimi-, ihanne- ja maksimileveyden sekä täyttää tämän tiedon perusteella tyhjää tilaa. Se pyrkii myös jakamaan tilan tasaisesti sarakkeiden kesken, jotta joitakin ohjausobjekteja ei kierrätetä liikaa.

GridLayout- ja TableWrapLayout -luokkien sekoittaminen on mahdollista, mutta kierrätys loppuu siinä haarassa, jossa GridLayout-luokkaa käytetään. Luokkia voi siis yhdistellä, jos kierrätystä ei tarvita (jos esimerkiksi yhdistelmä sisältää ohjausobjekteja, joita ei voikaan kierrättää, kuten tekstiä, painikkeita ja rakenteita). Lomakkeesta pitää kuitenkin olla ehjä TableWrapLayout-polku jokaiseen tekstin ohjausobjektiin, joka pitää kierrättää.