Что такое стек? Что такое поток? - Менеджер макета обуви

Эффективно использовать любой графический интерфейс пользователя Инструментарий, вы должны понимать его менеджер макета (или менеджер геометрии). В Qt у вас есть HBoxes и VBoxes, в Tk у вас есть Packer, а в Shoes у вас есть стеки и потоки. Звучит загадочно, но читайте дальше - это очень просто.

Стек делает так, как следует из названия. Они складывают вещи вертикально. Если вы поместите три кнопки в стек, они будут расположены вертикально друг над другом. Если вам не хватает места в окне, в правой части окна появится полоса прокрутки, чтобы вы могли просмотреть все элементы в окне.

Обратите внимание, что когда говорят, что кнопки находятся «внутри» стека, это просто означает, что они были созданы внутри блока, переданного в стек метод. В этом случае три кнопки создаются в то время, как внутри блока передается методу стека, поэтому они «внутри» стека.

Поток упаковывает вещи горизонтально. Если внутри потока созданы три кнопки, они появятся рядом друг с другом.

Есть еще одна важная вещь, чтобы понять о потоках. Если у вас не хватает места горизонтально, Shoes никогда не создаст горизонтальную полосу прокрутки. Вместо этого Shoes создаст элементы внизу на «следующей строке» приложения. Это как когда вы достигаете конца строки в текстовом редакторе. Текстовый процессор не создает полосу прокрутки и позволяет вам продолжать печатать со страницы, вместо этого он помещает слова в следующую строку.

instagram viewer

До сих пор мы не давали никаких измерений при создании стеков и потоков; они просто заняли столько места, сколько им нужно. Тем не менее, размеры могут быть даны так же, как размеры даны Shoes.app вызов метода. В этом примере создается поток, который не такой широкий, как окно, и добавляются к нему кнопки. Ему также присваивается стиль границы, чтобы визуально определить, где находится поток.

По красной границе вы можете видеть, что поток не распространяется до самого края окна. Когда будет создана третья кнопка, для нее не хватит места, поэтому Обувь переместится на следующую строку.

Потоки и стеки не только содержат визуальные элементы приложения, они также могут содержать другие потоки и стеки. Комбинируя потоки и стеки, вы можете создавать сложные макеты визуальных элементов с относительной легкостью.

Если вы веб-разработчик, вы можете заметить, что это очень похоже на механизм разметки CSS. Это намеренно. Обувь находится под сильным влиянием Интернета. Фактически, одним из основных визуальных элементов в Shoes является «Ссылка», и вы даже можете размещать приложения Shoes в «страницы».

В этом примере создается поток, содержащий 3 стека. Это создаст макет из 3 столбцов, элементы которого в каждом столбце будут отображаться вертикально (поскольку каждый столбец представляет собой стек). Ширина стеков - это не ширина пикселя, как в предыдущих примерах, а 33%. Это означает, что каждый столбец займет 33% доступного горизонтального пространства в приложении.