SafeArea QML Type

Ermöglicht den Zugriff auf die Eigenschaften des sicheren Bereichs des Objekts oder Fensters. Mehr...

Import Statement: import QtQuick
Since: Qt 6.9

Eigenschaften

Detaillierte Beschreibung

Der angehängte Typ SafeArea liefert Informationen über die Bereiche eines Elements oder Fensters, in denen die Gefahr besteht, dass der Inhalt von anderen UI-Elementen überlagert wird, z. B. von Systemtitelleisten oder Statusleisten.

Diese Informationen können verwendet werden, um die untergeordneten Elemente eines Elements innerhalb des sicheren Bereichs des Elements anzuordnen, während eine Hintergrundfarbe oder ein Effekt das gesamte Element umspannen kann.

Rectangle {
    id: parentItem
    gradient: Gradient.SunnyMorning
    anchors.fill: parent

    Rectangle {
        id: childItem
        gradient: Gradient.DustyGrass

        anchors {
            fill: parent

            topMargin: parent.SafeArea.margins.top
            leftMargin: parent.SafeArea.margins.left
            rightMargin: parent.SafeArea.margins.right
            bottomMargin: parent.SafeArea.margins.bottom
        }
    }
}

Die SafeArea-Ränder sind relativ zu dem Element, dem sie zugeordnet sind. Wenn ein Vorgängerobjekt seine Unterobjekte innerhalb der Ränder des sicheren Bereichs angeordnet hat, weisen alle Nachfolgeobjekte, denen ein eigener SafeArea-Bereich zugeordnet ist, keine Ränder auf, es sei denn, es wurde additional margins hinzugefügt.

Hinweis: Ein Element sollte nicht auf der Grundlage seines eigenen sicheren Bereichs positioniert werden, da dies zu einer Bindungsschleife führen würde.

Zusätzliche Ränder

Manchmal umfasst das Layout eines Artikels untergeordnete Artikel, die sich gegenseitig überlappen, z. B. in einem Fenster mit einer halbtransparenten Kopfzeile, wobei der restliche Fensterinhalt unterhalb der Kopfzeile verläuft.

In diesem Fall kann der Artikel die Position und Größe der Kopfzeile über die Eigenschaft additionalMargins an die untergeordneten Artikel weitergeben.

Die zusätzlichen Ränder werden zu allen Rändern hinzugefügt, die das Element bereits von seiner übergeordneten Hierarchie übernommen hat (einschließlich Systemrändern wie Titelleisten oder Statusleisten), und die untergeordneten Elemente spiegeln die kombinierten Ränder entsprechend wider.

Rectangle {
    id: parentItem
    gradient: Gradient.SunnyMorning
    anchors.fill: parent

    Rectangle {
        id: headerItem
        width: parent.width
        height: 80
        gradient: Gradient.WinterNeva
        z: 1
    }

    Item {
        id: contentItem
        anchors.fill: parent
        z: 0

        SafeArea.additionalMargins.top: headerItem.height
                                      - parent.SafeArea.margins.top

        Rectangle {
            id: childItem
            gradient: Gradient.DustyGrass
            anchors {
                fill: parent

                topMargin: parent.SafeArea.margins.top
                leftMargin: parent.SafeArea.margins.left
                rightMargin: parent.SafeArea.margins.right
                bottomMargin: parent.SafeArea.margins.bottom
            }
        }
    }
}

Im obigen Beispiel ist die Kopfzeile am oberen Rand des Fensters positioniert, was zu einer Überschneidung mit den Rändern des sicheren Bereichs führen kann, die vom Fenster ausgehen. Um dies zu berücksichtigen, fügen wir nur für den Teil der Kopfzeile zusätzliche Ränder hinzu, der über die Ränder des sicheren Bereichs des Fensters hinausgeht.

Hinweis: In diesem Beispiel überschneidet sich die Kopfzeile nicht mit dem untergeordneten Element, da das Ziel darin besteht, zu zeigen, wie die Elemente positioniert und in der Größe verändert werden, wenn sich der Rand des sicheren Bereichs ändert.

Steuerelemente

Die Anwendung von Sicherheitsbereichsrändern auf ein Steuerelement ist einfach, da das Steuerelement bereits Eigenschaften zum Hinzufügen von Auffüllungen zum Inhaltselement des Steuerelements bietet.

Control {
    anchors.fill: parent

    background: Rectangle {
        gradient: Gradient.SunnyMorning
    }

    topPadding: SafeArea.margins.top
    leftPadding: SafeArea.margins.left
    rightPadding: SafeArea.margins.right
    bottomPadding: SafeArea.margins.bottom

    contentItem: Rectangle {
        gradient: Gradient.DustyGrass
    }
}

Eigenschaft Dokumentation

additionalMargins group

additionalMargins.bottom : real

additionalMargins.left : real

additionalMargins.right : real

additionalMargins.top : real

Diese Eigenschaft enthält die zusätzlichen sicheren Bereichsränder für das Element.

Die zusätzlichen Sicherheitsabstände können nicht negativ sein und werden automatisch auf 0 gesetzt.

Die resultierenden Sicherheitsbereichsränder des Elements sind die Summe der geerbten Ränder (z. B. von Titelleisten oder Statusleisten) und der auf das Element angewendeten zusätzlichen Ränder.

Siehe auch margins.


margins group

margins.bottom : real [read-only]

margins.left : real [read-only]

margins.right : real [read-only]

margins.top : real [read-only]

Diese Eigenschaft enthält die Ränder des sicheren Bereichs, relativ zum angehängten Element.

Siehe auch additionalMargins.


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.