Spec-Zone.ru › Qt 5.13

Тип 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

Spec-Zone.ru

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