Om er effectief gebruik van te maken GUI toolkit, u moet de lay-outmanager (of geometriemanager) begrijpen. In Qt heb je HBoxes en VBoxes, in Tk heb je de Packer en in Shoes die je hebt stapels en stromen. Het klinkt cryptisch maar lees verder - het is heel eenvoudig.
Een stapel doet precies zoals de naam al aangeeft. Ze stapelen dingen verticaal op. Als u drie knoppen in een stapel plaatst, worden ze verticaal gestapeld, een op elkaar. Als er onvoldoende ruimte in het venster is, verschijnt een schuifbalk aan de rechterkant van het venster waarmee u alle elementen in het venster kunt bekijken.
Merk op dat wanneer er wordt gezegd dat de knoppen zich "binnen" van de stapel bevinden, dit gewoon betekent dat ze zijn gemaakt binnen het blok dat aan de stapel is doorgegeven methode. In dit geval worden de drie knoppen gemaakt terwijl binnen in het blok wordt doorgegeven aan de stapelmethode, dus ze zijn "binnen" van de stapel.
Een stroom pakt dingen horizontaal in. Als er drie knoppen in een stroom worden gemaakt, verschijnen ze naast elkaar.
Er is nog een belangrijk ding om te begrijpen over stromen. Als de ruimte horizontaal opraakt, maakt Shoes nooit een horizontale schuifbalk. In plaats daarvan maakt Shoes de elementen lager op de "volgende regel" van de toepassing. Het is alsof u het einde van een regel in een tekstverwerker bereikt. De tekstverwerker maakt geen schuifbalk en laat je van de pagina blijven typen, maar plaatst de woorden op de volgende regel.
Tot nu toe hebben we geen dimensies gegeven bij het maken van stapels en flow; ze hebben gewoon zoveel ruimte ingenomen als ze nodig hadden. Dimensies kunnen echter op dezelfde manier worden gegeven als dimensies aan de Shoes.app methodeaanroep. Dit voorbeeld maakt een stroom die niet zo breed is als het venster en voegt er knoppen aan toe. Er wordt ook een randstijl aan gegeven om visueel te identificeren waar de stroom is.
Je kunt aan de rode rand zien dat de stroom zich niet helemaal tot aan de rand van het venster uitstrekt. Wanneer de derde knop wordt gemaakt, is er niet genoeg ruimte voor, zodat schoenen naar de volgende regel gaan.
Stromen en stapels bevatten niet alleen de visuele elementen van een toepassing, ze kunnen ook andere stromen en stapels bevatten. Door stromen en stapels te combineren, kunt u relatief eenvoudig complexe lay-outs van visuele elementen maken.
Als u een webontwikkelaar bent, merkt u mogelijk dat dit erg lijkt op de CSS-layout-engine. Dit is opzettelijk. Schoenen wordt sterk beïnvloed door het web. Een van de belangrijkste visuele elementen in Schoenen is de 'Link' en u kunt zelfs schoenen-applicaties in 'pagina's' rangschikken.
In dit voorbeeld wordt een stroom met 3 stapels gemaakt. Hiermee maakt u een indeling met 3 kolommen, waarbij de elementen in elke kolom verticaal worden weergegeven (omdat elke kolom een stapel is). De breedte van de stapels is geen pixelbreedte zoals in vorige voorbeelden, maar eerder 33%. Dit betekent dat elke kolom 33% van de beschikbare horizontale ruimte in de toepassing inneemt.