Тип QML LayoutMirroring
Свойство, используемое для отражения поведения макета. Подробнее...
| Оператор импорта: | import QtQuick 2.13 |
Свойства
- childrenInherit : bool
- enabled : bool
Подробное описание
Присоединенное свойство LayoutMirroring используется для горизонтального отражения якорей элементов, типов позиционеров (таких как Row и Grid) и представлений (таких как GridView и горизонтальные ListView). Отражение — это визуальное изменение: левые якоря становятся правыми, а типы позиционеров, такие как Grid и Row, меняют горизонтальную компоновку дочерних элементов.
Отражение активируется для элемента, установив свойство enabled в значение true. По умолчанию это влияет только на сам элемент; установка свойства childrenInherit в значение true распространяет поведение отражения на все дочерние элементы. Если присоединённое свойство LayoutMirroring не определено для элемента, отражение не активируется.
Примечание: Начиная с Qt 5.8, LayoutMirroring может быть присоединён к Окно. На практике это то же самое, что прикрепление 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.13/qml-qtquick-layoutmirroring.html