Тип QML LayoutMirroring
Свойство, используемое для зеркального отображения поведения макета. Подробнее...
| Заявление об импорте: | import QtQuick 2.15 |
Свойства
- childrenInherit : bool
- enabled : bool
Подробное описание
Присоединённое свойство LayoutMirroring используется для горизонтального зеркального отображения якорей элементов, типов позиционеров (например, Row и Grid) и представлений (например, GridView и горизонтального ListView). Зеркальное отображение — это визуальное изменение: левые якоря становятся правыми, а типы позиционеров, такие как Grid и Row, изменяют горизонтальное расположение дочерних элементов.
Зеркальное отображение включено для элемента, установив свойство enabled в значение true. По умолчанию это влияет только на сам элемент; установка свойства childrenInherit в значение true распространяет поведение зеркального отображения и на все дочерние элементы. Если для элемента не определено присоединённое свойство LayoutMirroring, зеркальное отображение не включено.
Примечание: Начиная с Qt 5.8, LayoutMirroring может быть присоединён к элементу Window. На практике это то же самое, что присоединённое свойство LayoutMirroring к contentItem окна.
Следующий пример демонстрирует зеркальное отображение в действии. Row ниже указан как привязанный к левой стороне родительского элемента. Однако, поскольку зеркальное отображение включено, якорь горизонтально инвертируется, и теперь он привязан к правой стороне. Кроме того, поскольку элементы в Row по умолчанию расположены слева направо, теперь они расположены справа налево, как показано по номерам и непрозрачности элементов:
import QtQuick 2.0
Rectangle {
LayoutMirroring.enabled: true
LayoutMirroring.childrenInherit: true
width: 300; height: 50
color: "yellow"
border.width: 1
Row {
anchors { left: parent.left; margins: 5 }
y: 5; spacing: 5
Repeater {
model: 5
Rectangle {
color: "red"
opacity: (5 - index) / 5
width: 40; height: 40
Text {
text: index + 1
anchors.centerIn: parent
}
}
}
}
} Зеркальное отображение макетов полезно, когда необходимо поддерживать как слева направо, так и справа налево варианты макета приложения для поддержки различных языковых областей. Свойство childrenInherit позволяет применять зеркальное отображение макета без ручного настройки конфигурации макета для каждого элемента в приложении. Однако имейте в виду, что зеркальное отображение не влияет на любое позиционирование, определяемое координатой Item x, поэтому даже при включённом зеркальном отображении часто потребуется внести некоторые изменения в макет, чтобы поддерживать желаемое направление макета. Также может потребоваться отключить зеркальное отображение отдельных дочерних элементов (установив LayoutMirroring.enabled в значение false для таких элементов), если зеркальное отображение не нужно или если дочерний элемент уже реализует зеркальное отображение каким-либо пользовательским способом.
Чтобы установить направление макета на основе направления макета по умолчанию приложения, используйте следующий код:
LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
Дополнительную информацию об использовании LayoutMirroring и других связанных функций для реализации поддержки справа налево в приложении см. в разделе Интерфейсы пользователей справа налево.
Документация по свойствам
childrenInherit : bool
Это свойство указывает, наследуется ли значение LayoutMirroring.enabled для этого элемента его дочерними элементами.
Значение по умолчанию — false.
enabled : bool
Это свойство указывает, зеркально отображается ли горизонтально макет элемента. Установка значения true горизонтально инвертирует настройки якорей таким образом, что левые якоря становятся правыми, а правые — левыми. Для типов позиционеров (например, Row и Grid) и типов представлений (например, GridView и ListView) это также зеркально отображает горизонтальное направление макета элемента.
Значение по умолчанию — false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtquick-layoutmirroring.html