Vad är en stack? Vad är ett flöde? - Shoes Layout Manager

För att effektivt använda någon GUI verktygssats, måste du förstå dess layout manager (eller geometry manager). I Qt har du HBoxer och VBoxer, i Tk har du Packer och i skor du har staplar och flyter. Det låter kryptiskt men läs vidare - det är väldigt enkelt.

En stack gör precis som namnet antyder. De staplar saker vertikalt. Om du lägger tre knappar i en bunt staplas de vertikalt, en ovanpå varandra. Om du har slut på rummet i fönstret visas en rullningsfält till höger om fönstret så att du kan se alla element i fönstret.

Observera att när det sägs att knapparna är "inuti" stacken, betyder det bara att de skapades inuti blocket som skickades till stacken metod. I det här fallet skapas de tre knapparna medan insidan av blocket överförs till stackmetoden, så att de är "inuti" i stacken.

Ett flöde packar saker horisontellt. Om tre knappar skapas inuti ett flöde visas de bredvid varandra.

Det finns en viktigare sak att förstå om flöden. Om du går tom rymden horisontellt skapar skor aldrig en horisontell rullningslist. I stället skapar skor elementen längre ner på applikationens "nästa rad". Det är som när du når slutet av en rad i en ordbehandlare. Ordbehandlaren skapar inte en rullningslista och låter dig fortsätta skriva från sidan, utan placerar orden på nästa rad.

instagram viewer

Hittills har vi inte gett några dimensioner när vi skapar staplar och flöde; de har helt enkelt tagit så mycket utrymme som de behövde. Dimensioner kan emellertid ges på samma sätt som dimensioner ges till Shoes.app metodsamtal. Detta exempel skapar ett flöde som inte är så brett som fönstret och lägger till knappar i det. En gränsstil ges också för att visuellt identifiera var flödet är.

Du kan se vid den röda kanten att flödet inte sträcker sig hela vägen till fönsterkanten. När den tredje knappen kommer att skapas finns det inte tillräckligt med utrymme för det så att Skor flyttar ner till nästa rad.

Flöden och staplar innehåller inte bara de visuella elementen i en applikation, de kan också innehålla andra flöden och staplar. Genom att kombinera flöden och staplar kan du skapa komplexa layouter av visuella element med relativt enkelhet.

Om du är en webbutvecklare kan du konstatera att detta liknar CSS-layoutmotorn. Detta är avsiktligt. Skor påverkas starkt av webben. I själva verket är ett av de grundläggande visuella elementen i skor "länken" och du kan till och med ordna skor-applikationer till "sidor".

I detta exempel skapas ett flöde som innehåller 3 staplar. Detta skapar en 3-kolumnlayout, där elementen i varje kolumn visas vertikalt (eftersom varje kolumn är en stack). Staplarnas bredd är inte en pixelbredd som i tidigare exempel, utan snarare 33%. Detta innebär att varje kolumn tar 33% av det tillgängliga horisontella utrymmet i applikationen.

instagram story viewer