At effektivt bruge enhver GUI værktøjssæt, skal du forstå dens layout manager (eller geometri manager). I Qt har du HBoxes og VBoxes, i Tk har du Packeren og i Shoes du har stabler og flyder. Det lyder kryptisk, men læs videre - det er meget enkelt.
En stak gør som navnet antyder. De stak ting lodret. Hvis du lægger tre knapper i en stak, stables de lodret, en oven på hinanden. Hvis du løber tør for rummet i vinduet, vises en rullebjælke i højre side af vinduet, så du kan se alle elementerne i vinduet.
Bemærk, at når det siges, at knapperne er "inde" i stakken, betyder det bare, at de blev oprettet inde i blokken, der blev sendt til stakken metode. I dette tilfælde oprettes de tre knapper, mens indersiden af blokken overføres til stakmetoden, så de er "inde" i stakken.
En strøm pakker tingene vandret. Hvis der oprettes tre knapper inde i en flow, vises de ved siden af hinanden.
Der er en vigtigere ting at forstå om strømme. Hvis du løber tør for pladsen vandret, opretter sko aldrig en vandret rullebjælke. I stedet vil sko oprette elementerne nede på applikationens "næste linje". Det er som når du når slutningen af en linje i en tekstbehandler. Tekstprocessoren opretter ikke en rullebjælke og lader dig fortsætte med at skrive fra siden, i stedet placerer den ordene på den næste linje.
Indtil nu har vi ikke givet nogen dimensioner, når vi opretter stabler og flow; de har simpelthen taget så meget plads, som de havde brug for. Imidlertid kan dimensioner gives på samme måde som dimensioner gives til Shoes.app metodeopkald. Dette eksempel skaber en strøm, der ikke er så bred som vinduet og tilføjer knapper til det. Der gives også en kantstil til det visuelt at identificere, hvor strømmen er.
Du kan se ved den røde kant, at strømmen ikke strækker sig helt ud til kanten af vinduet. Når den tredje knap skal oprettes, er der ikke nok plads til det, så Sko flytter ned til næste linje.
Strømme og stabler indeholder ikke kun de visuelle elementer i et program, de kan også indeholde andre strømme og stabler. Ved at kombinere strømme og stabler kan du oprette komplekse layout af visuelle elementer med relativ lethed.
Hvis du er en webudvikler, kan du bemærke, at dette ligner meget CSS-layoutmotoren. Dette er forsætligt. Sko er stærkt påvirket af Internettet. Faktisk er et af de grundlæggende visuelle elementer i Sko "Link", og du kan endda arrangere Sko-applikationer på "sider".
I dette eksempel oprettes en strømning, der indeholder 3 stabler. Dette vil skabe et 3-søjleslayout, hvor elementerne i hver søjle vises lodret (fordi hver søjle er en stak). Bredden af stablerne er ikke en pixelbredde som i tidligere eksempler, men snarere 33%. Dette betyder, at hver kolonne vil tage 33% af det tilgængelige horisontale rum i applikationen.