QLayout является фундаментальным компонентом в архитектуре приложений на Quasar. Он служит контейнером для всех визуальных элементов интерфейса и обеспечивает корректное распределение пространства между шапкой (header), боковой панелью (drawer), контентом (page container) и футером (footer). Важной особенностью QLayout является его способность автоматически управлять адаптивностью и поведением дочерних компонентов при изменении размеров экрана.
QLayout строится вокруг концепции flex-контейнера, что позволяет легко управлять выравниванием и пропорциями элементов внутри. Основной шаблон компонента выглядит следующим образом:
view и его
ролиАтрибут view задаёт структуру размещения
компонентов внутри QLayout. Он состоит из нескольких символов,
которые описывают поведение шапки, боковой панели и футера:
h – шапка (header) закреплена сверхуH – шапка скрыта при прокруткеl – левая панель (left drawer) поверх контентаL – левая панель закреплена слеваf – футер (footer) фиксированF – футер скрыт при прокруткеПример строки view="hHh lpR fFf":
hHh – шапка всегда сверху, с эффектом подъёма при
скроллеlpR – левая панель отображается в разных режимах в
зависимости от размера экрана (p – push, R –
responsive)fFf – футер закреплён снизу, скрывается при
скроллеВажно понимать, что правильная комбинация символов
view позволяет добиться как фиксированных, так и плавающих
интерфейсов без необходимости ручного написания CSS для
адаптивности.
QHeader используется для создания верхней панели приложения. Ключевые свойства:
elevated – добавляет тень и визуально отделяет шапку от
контентаheight-hint – задаёт рекомендуемую высоту (например,
50 или 100)reveal – позволяет скрывать шапку при прокрутке вниз и
показывать при прокрутке вверх
Название приложения
QHeader автоматически взаимодействует с QLayout, подстраивая размеры контента и боковой панели.
QDrawer отвечает за боковое меню. Основные режимы:
overlay – панель накладывается поверх
контента, скрывается при клике вне областиpush – сдвигает контент при открытии
панелиside – закреплённая панель, контент
подстраивается под ширинуСвойства управления:
v-model – управляет состоянием открытия/закрытияshow-if-above – отображает панель на больших экранах по
умолчаниюbehavior – определяет способ взаимодействия с контентом
(overlay, push, side)
Пункт меню 1
QPageContainer является контейнером для всех страниц приложения. Он обеспечивает корректное масштабирование контента, учитывая высоту шапки и футера. QPage – это отдельный блок страницы, который может содержать прокручиваемый контент.
padding позволяет добавлять внутренние
отступы.scroll контент внутри QPage
автоматически становится прокручиваемым без изменения размеров
QLayout.
Основной контент с прокруткой
QFooter фиксирует нижнюю часть интерфейса. Основные свойства:
elevated – добавляет теньreveal – позволяет футеру скрываться при прокруткеheight-hint – рекомендуемая высота футера
Футер приложения
QFooter совместим с режимами view в QLayout, что
позволяет создать как фиксированный, так и плавающий футер.
Комбинация QHeader, QDrawer, QPageContainer и QFooter в рамках QLayout создаёт адаптивный каркас приложения, где:
Использование QLayout в сложных интерфейсах позволяет избежать необходимости ручного управления стилями, обеспечивая консистентность и предсказуемость поведения компонентов на разных устройствах.