Spec-Zone.ru › Qt

Тип QML Column

Размещает своих потомков в столбце. Подробнее...

Оператор импорта: import QtQuick
Наследует:

Item

  • Список всех членов, включая унаследованные

Свойства

  • add : Переход
  • bottomPadding : real
  • leftPadding : real
  • move : Переход
  • padding : real
  • populate : Переход
  • rightPadding : real
  • spacing : real
  • topPadding : real

Сигналы

  • positioningComplete()

Методы

  • forceLayout()

Подробное описание

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

Ниже представлен Column, содержащий три прямоугольника различных размеров:

Column {
    spacing: 2

    Rectangle { color: "red"; width: 50; height: 50 }
    Rectangle { color: "green"; width: 20; height: 50 }
    Rectangle { color: "blue"; width: 50; height: 20 }
}

Column автоматически размещает эти элементы в вертикальном расположении, подобно этому:

Если элемент внутри Column не видим или имеет ширину или высоту 0, элемент не будет выложен и не будет виден в столбце. Кроме того, поскольку Column автоматически размещает своих потомков вертикально, дочерний элемент внутри Column не должен устанавливать своё положение по оси y или вертикально закреплять себя с помощью якорей top, bottom, anchors.verticalCenter, fill или centerIn. Если вам необходимо выполнить эти действия, рассмотрите размещение элементов без использования Column.

Обратите внимание, что элементы в Column могут использовать свойство Positioner для получения дополнительной информации о своём положении внутри Column.

Дополнительную информацию об использовании Column и других связанных типах позиционеров см. в разделе Позиционеры элементов.

Использование переходов

Column анимирует элементы с помощью определённых переходов при добавлении элементов или перемещении их внутри Column.

Например, в Column ниже свойство move установлено на определённый Переход:

Column {
    spacing: 2

    Rectangle { color: "red"; width: 50; height: 50 }
    Rectangle { id: greenRect; color: "green"; width: 20; height: 50 }
    Rectangle { color: "blue"; width: 50; height: 20 }

    move: Transition {
        NumberAnimation { properties: "x,y"; duration: 1000 }
    }

    focus: true
    Keys.onSpacePressed: greenRect.visible = !greenRect.visible
}

При нажатии клавиши Пробел значение visible зеленого прямоугольника Rectangle переключается. При его появлении и исчезновении синий прямоугольник Rectangle перемещается внутри Column, и переход move автоматически применяется к синему прямоугольнику Rectangle:

См. также Row, Grid, Flow, Positioner, ColumnLayout и Примеры Qt Quick — Позиционеры.

Документация по свойствам

[с версии 5.6] bottomPadding : real

Эти свойства содержат отступы вокруг содержимого.

Это свойство QML было введено в Qt 5.6.

add : Transition

Это свойство содержит переход, который будет выполнен для элементов, добавляемых в этот позиционер. Для позиционера это относится к:

  • Элементам, созданным или повторно присоединённым в качестве потомков позиционера после создания самого позиционера
  • Дочерним элементам, меняющим свойство Item::visible с false на true и, следовательно, теперь видимым

Переход может использовать свойство ViewTransition для доступа к дополнительным данным об добавляемом элементе. Смотрите документацию по ViewTransition для получения более подробной информации и примеров использования этих переходов.

Примечание: Этот переход не применяется к элементам, которые уже являются частью позиционера в момент его создания. В этом случае применяется переход populate.

См. также populate, ViewTransition и Примеры Qt Quick — Позиционеры.

move : Transition

Это свойство содержит переход, который будет выполнен для элементов, перемещённых внутри позиционера. Для позиционера это относится к:

  • Дочерним элементам, которые перемещаются, когда они смещаются из-за добавления, удаления или перестановки других элементов в позиционере
  • Дочерним элементам, которые перемещаются из-за изменения размера других элементов в позиционере

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

См. также add, populate, ViewTransition и Примеры Qt Quick — Позиционеры.

populate : Transition

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

Переход может использовать свойство ViewTransition для доступа к дополнительным данным об добавляемом элементе. Смотрите документацию по ViewTransition для получения более подробной информации и примеров использования этих переходов.

См. также add, ViewTransition и Примеры Qt Quick — Позиционеры.

spacing : real

Отступ — это количество пикселей, оставленных пустым между смежными элементами. По умолчанию отступ равен 0.

См. также Grid::spacing.

Документация по сигналам

[since 5.9] positioningComplete()

Этот сигнал испускается при завершении позиционирования.

Примечание: Соответствующий обработчик — onPositioningComplete.

Этот сигнал был введён в Qt 5.9.

Документация по методам

[since 5.9] forceLayout()

Column обычно позиционирует своих потомков один раз за кадр. Это означает, что внутри блоков скрипта возможны изменения в подчинённых элементах, но Column ещё не был обновлён соответствующим образом.

Этот метод заставляет Column немедленно отреагировать на любые незавершенные изменения своих потомков.

Примечание: методы, как правило, должны вызываться после завершения Component.

Этот метод был введён в Qt 5.9.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick-column.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API