Auf dieser Seite

Popup QML Type

Basistyp für popup-ähnliche Benutzeroberflächenelemente. Mehr...

Import Statement: import QtQuick.Controls
Inherits:

QtObject

Inherited By:

Dialog, Drawer, Menu, and ToolTip

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

„Popup“ ist der Basistyp für popup-ähnliche Benutzeroberflächenelemente. Es kann mit „ Window “ oder „ ApplicationWindow “ verwendet werden.

import QtQuick.Window
import QtQuick.Controls

ApplicationWindow {
    id: window
    width: 400
    height: 400
    visible: true

    Button {
        text: "Open"
        onClicked: popup.open()
    }

    Popup {
        id: popup
        x: 100
        y: 100
        width: 200
        height: 300
        modal: true
        focus: true
        closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
    }
}

„Popup“ verfügt über kein eigenes Layout, sondern erfordert, dass Sie seinen Inhalt positionieren, beispielsweise durch das Erstellen eines „ RowLayout “ oder eines „ ColumnLayout “.

Elemente, die als Kinder eines Popups deklariert werden, werden automatisch dem „ contentItem “ des Popups untergeordnet. Dynamisch erstellte Elemente müssen explizit dem „ contentItem “ untergeordnet werden.

Das folgende Diagramm veranschaulicht das Layout eines Popups innerhalb eines Fensters:

Popup-Fenster, das den Inhalt überlagert

Die Eigenschaften „ implicitWidth “ und „ implicitHeight “ eines Popups basieren in der Regel auf den impliziten Größen des Hintergrunds und des Inhaltselements sowie auf eventuellen Einrückungen und Abständen. Diese Eigenschaften bestimmen, wie groß das Popup sein wird, wenn keine expliziten Werte für „ width “ oder „ height “ angegeben sind.

Die Geometrie des „ contentItem “ wird durch den Abstand („padding“) bestimmt. Das folgende Beispiel reserviert einen Abstand von 10px zwischen den Rändern des Popups und seinem Inhalt:

Popup {
    padding: 10

    contentItem: Text {
        text: "Content"
    }
}

Das Element „ background “ füllt die gesamte Breite und Höhe des Popups aus, sofern keine Einrückungen oder eine explizite Größe dafür angegeben wurden.

Negative Einrückungen können verwendet werden, um den Hintergrund größer als das Popup zu gestalten. Das folgende Beispiel nutzt negative Einrückungen, um einen Schatten außerhalb der Grenzen des Popups zu platzieren:

Popup {
    topInset: -2
    leftInset: -2
    rightInset: -6
    bottomInset: -6

    background: BorderImage {
        source: ":/images/shadowed-background.png"
    }
}

Seit Qt 6.8 bieten einige Popups, wie z. B. „ Menu “, je nach Plattform drei verschiedene Implementierungen an. Sie können die gewünschte Implementierung auswählen, indem Sie „ popupType “ festlegen.

Ob ein Popup den bevorzugten Typ verwenden kann, hängt von der Plattform ab. „ Popup.Item “ wird auf allen Plattformen unterstützt, während „ Popup.Window “ und „ Popup.Native “ normalerweise nur auf Desktop-Plattformen unterstützt werden. Wenn es sich bei einem Popup zudem um ein „ Menu “ innerhalb eines „ native menubar “ handelt, ist das Menü ebenfalls nativ. Und wenn das Menü ein Untermenü innerhalb eines anderen Menüs ist, bestimmt das übergeordnete (oder Stamm-)Menü den Typ.

Ein Popup als Element anzeigen

Durch Setzen von „ popupType “ auf „ Popup.Item “ wird das Popup nicht als separates Fenster, sondern als Element innerhalb derselben Szene wie das übergeordnete Element angezeigt. Dieses Element ist dem „ overlay “ dieser Szene untergeordnet und so gestaltet, dass es wie ein echtes Fenster aussieht.

Diese Option ist besonders nützlich auf Plattformen, die keine mehreren Fenster unterstützen. Vor Qt 6.8 war dies zudem die einzige Option.

Um sicherzustellen, dass ein Popup über anderen Elementen in der Szene angezeigt wird, wird empfohlen, „ ApplicationWindow “ zu verwenden. „ ApplicationWindow “ bietet zudem Effekte zur Hintergrundabdunkelung.

Ein Popup als separates Fenster anzeigen

Durch Setzen von ` popupType ` auf ` Popup.Window` wird das Popup innerhalb eines Top-Level- window s angezeigt, das mit dem Flag ` Qt::Popup ` konfiguriert ist. Die Verwendung eines Fensters zur Anzeige eines Popups hat den Vorteil, dass das Popup über dem übergeordneten Fenster schwebt und außerhalb dessen Geometrie platziert werden kann. Ansonsten sieht das Popup genauso aus wie bei der Verwendung von ` Popup.Item`, d. h., es verwendet dieselben QML-Delegaten und dasselbe Styling wie bei der Verwendung von ` Popup.Item`.

Hinweis: Wenn die Plattform „ Popup.Window “ nicht unterstützt, wird „ Popup.Item “ als Fallback verwendet.

Anzeigen eines nativen Popups

Durch Setzen von ` popupType ` auf ` Popup.Native` wird das Popup mithilfe eines plattformnativen Popup-Fensters angezeigt. Dieses Fenster und sein gesamter Inhalt werden von der Plattform und nicht von QML gerendert. Das bedeutet, dass die dem Popup zugewiesenen QML-Delegaten nicht für das Rendering verwendet werden. Wenn Sie diese Option beispielsweise bei einem „ Menu “ verwenden, wird dieses mithilfe plattformspezifischer Menü-APIs implementiert. Dadurch wirkt das Popup in der Regel nativer als beispielsweise bei „ Popup.Window “, unterliegt jedoch gleichzeitig plattformspezifischen Einschränkungen und Unterschieden hinsichtlich Aussehen und Verhalten. Solche Einschränkungen sind in den betroffenen Unterklassen ausführlicher dokumentiert, wie beispielsweise bei einem „ Menu “.

Hinweis: Wenn die Plattform „ Popup.Native “ nicht unterstützt, wird „ Popup.Window “ als Fallback verwendet.

Wird innerhalb eines Popups nur ein einzelnes Element verwendet, passt sich dessen Größe automatisch an die implizite Größe des enthaltenen Elements an. Dadurch eignet es sich besonders gut für die Verwendung in Verbindung mit Layouts.

Popup {
    ColumnLayout {
        anchors.fill: parent
        CheckBox { text: qsTr("E-mail") }
        CheckBox { text: qsTr("Calendar") }
        CheckBox { text: qsTr("Contacts") }
    }
}

Manchmal können sich zwei Elemente im Popup befinden:

Popup {
    SwipeView {
        // ...
    }
    PageIndicator {
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
    }
}

In diesem Fall kann das Popup keine sinnvolle implizite Größe berechnen. Da wir das ` PageIndicator ` über dem ` SwipeView` verankern, können wir die Inhaltsgröße einfach auf die implizite Größe der Ansicht setzen:

Popup {
    contentWidth: view.implicitWidth
    contentHeight: view.implicitHeight

    SwipeView {
        id: view
        // ...
    }
    PageIndicator {
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
    }
 }

Hinweis: Bei Verwendung von „ popup items “ wird das „ content item “ des Popups dem „ overlay “ untergeordnet und befindet sich nicht innerhalb des übergeordneten Elements des Popups. Aus diesem Grund wirkt sich ein auf den Baum, in dem sich das Popup befindet, angewendeter „ scale “ nicht auf das visuelle Popup aus. Damit das Popup beispielsweise eines „ ComboBox “ der Skalierung der Combobox folgt, wenden Sie dieselbe Skalierung auch auf das „ overlay “ an:

Window {
    property double scaleFactor: 2.0

    Scale {
        id: scale
        xScale: scaleFactor
        yScale: scaleFactor
    }
    Item {
        id: scaledContent
        transform: scale

        ComboBox {
            id: combobox
            // ...
        }
    }

    Overlay.overlay.transform: scale
}

Ähnlich wie bei Elementen in „ Qt Quick “ beziehen sich die Koordinaten „ x “ und „ y “ des Popups auf dessen übergeordnetes Element. Das bedeutet, dass beim Öffnen eines Popups, das beispielsweise ein untergeordnetes Element eines „ Button “ ist, das Popup relativ zur Schaltfläche positioniert wird.

Im folgenden Beispiel wird die Eigenschaft „ Overlay.overlay “ verwendet, um ein Popup in der Mitte des Fensters zu positionieren, unabhängig von der Position der Schaltfläche, die das Popup öffnet:

Button {
    onClicked: popup.open()

    Popup {
        id: popup

        parent: Overlay.overlay

        x: Math.round((parent.width - width) / 2)
        y: Math.round((parent.height - height) / 2)
        width: 100
        height: 100
    }
}

Eine weitere Möglichkeit, ein Popup unabhängig von seinem übergeordneten Element im Fenster zu zentrieren, ist die Verwendung von ` anchors.centerIn`:

ApplicationWindow {
    id: window
    // ...

    Pane {
        // ...

        Popup {
            anchors.centerIn: Overlay.overlay
        }
    }
}

Um sicherzustellen, dass das Popup innerhalb der Grenzen des umgebenden Fensters positioniert wird, kann die Eigenschaft „ margins “ auf einen nicht-negativen Wert gesetzt werden.

Verwendung des Overlays

In Fällen, in denen „ popup windows “ nicht verwendet werden, legt „Popup“ das visuelle übergeordnete Element von „ contentItem “ auf „ overlay “ des Fensters fest, um sicherzustellen, dass das Popup vor allen anderen Elementen in der Szene angezeigt wird. Seine Hauptaufgabe besteht darin, Ereignisse abzufangen, um deren Weiterleitung an Elemente unter einem „ modal “-Popup zu verhindern, und das Popup entsprechend seiner „ closePolicy “ zu schließen.

In manchen Fällen kann es sinnvoll sein, ein Element vor ein Popup zu platzieren, beispielsweise ein „ virtual keyboard “. Dies ist derzeit nur möglich, indem man das übergeordnete Element des Objekts auf das Overlay setzt und sicherstellt, dass das Element vor jedem Popup-Element angeordnet ist, was durch einen positiven Wert für „ z “ gewährleistet wird.

Es wird generell nicht empfohlen, das Overlay auf diese Weise zu verwenden, da es nicht für diesen Zweck konzipiert wurde und das Verhalten beim Ändern des „ popupType “-Werts nicht konsistent ist.

Popup {
    id: popup
    visible: true
    anchors.centerIn: parent
    margins: 10
    closePolicy: Popup.CloseOnEscape
    ColumnLayout {
        TextField {
            placeholderText: qsTr("Username")
        }
        TextField {
            placeholderText: qsTr("Password")
            echoMode: TextInput.Password
        }
    }
}
InputPanel {
    parent: Overlay.overlay
    width: parent.width
    y: popup.y + popup.topMargin + (window.activeFocusItem?.y ?? 0) + (window.activeFocusItem?.height ?? 0)
    z: 1
}

Nachdem der Exit-Übergang abgeschlossen ist, werden diese Eigenschaften auf ihre Werte zurückgesetzt, die vor dem Start des Enter-Übergangs galten.

Dadurch können die integrierten Stile diese Eigenschaften animieren, ohne dass explizit definierte Werte verloren gehen.

Behandlung von „Zurück“- und „Esc“-Ereignissen

Standardmäßig wird ein Popup geschlossen, wenn:

  • activeFocus gesetzt ist,
  • seine „ closePolicy “-Eigenschaft auf „ Popup.CloseOnEscape “ gesetzt ist und
  • der Benutzer die Tastenkombination für „ QKeySequence::Cancel “ drückt (in der Regel die Escape-Taste).

Um dies zu verhindern, gehen Sie wie folgt vor:

  • Weisen Sie dem Popup-Fenster kein „ focus “ zu.
  • Legen Sie die „ closePolicy “ des Popups auf einen Wert fest, der „ Popup.CloseOnEscape “ nicht enthält.
  • Behandeln Sie das Signal „ Keys' escapePressed “ in einem untergeordneten Element des Popups so, dass dieses das Ereignis vor dem Popup erhält.

Eigenschaftsweitergabe

Das Popup erbt Schriftarten, Paletten und angehängte Eigenschaften über sein übergeordnetes Fenster, nicht über sein Objekt oder visuelles übergeordnetes Element:

import QtQuick.Controls.Basic

ApplicationWindow {
    width: 500
    height: 500
    visible: true
    font.pixelSize: 20
    palette.windowText: "steelblue"

    // This will have a pixelSize of 20 and be "steelblue" in color.
    header: Label {
        text: "ApplicationWindow Label"
        leftPadding: 20
        topPadding: 20
    }

    Pane {
        width: 400
        height: 400
        anchors.centerIn: parent
        palette.window: "#edf3f8"
        palette.windowText: "tomato"

        // This will have a pixelSize of 20 and be "tomato" in color.
        Label {
            text: "Pane Label"
        }

        Popup {
            width: 300
            height: 300
            anchors.centerIn: parent
            font.pixelSize: 10
            visible: true

            // This will have a pixelSize of 10 and "steelblue" in color.
            Label {
                text: "Popup Label"
            }

            Popup {
                width: 200
                height: 200
                anchors.centerIn: parent
                visible: true

                // This will have a pixelSize of 20 and be "steelblue" in color.
                Label {
                    text: "Child Popup Label"
                }
            }
        }
    }
}

Diagramm zur Vererbung von Popup-Eigenschaften

Außerdem geben Popups ihre Eigenschaften nicht an untergeordnete Popups weiter. Dieses Verhalten orientiert sich an „ Qt Widgets “, wo ein „ Qt::Popup “-Widget ein Fenster der obersten Ebene ist. Fenster der obersten Ebene geben ihre Eigenschaften nicht an untergeordnete Fenster weiter.

Bestimmte abgeleitete Typen wie „ ComboBox “ werden in der Regel so implementiert, dass das Popup als integraler Bestandteil des Steuerelements betrachtet wird und als solches beispielsweise angehängte Eigenschaften erben kann. Im „ ComboBox “ im Material-Stil werden beispielsweise das Thema und andere angehängte Eigenschaften vom Popup explizit vom „ ComboBox “ selbst geerbt:

popup: T.Popup {
    // ...

    Material.theme: control.Material.theme
    Material.accent: control.Material.accent
    Material.primary: control.Material.primary
}

Um also sicherzustellen, dass ein untergeordnetes Popup dieselben Eigenschaftswerte wie sein übergeordnetes Popup hat, legen Sie diese Eigenschaften explizit fest:

Popup {
    id: parentPopup
    // ...

    Popup {
        palette: parentPopup.palette
    }
}

Verhalten geschlossener Popups optimieren

Wenn ein Popup geschlossen ist, ist ihm kein Fenster zugeordnet, ebenso wenig wie seinen untergeordneten Elementen. Das bedeutet, dass untergeordnete Elemente erst dann „ polished “ sind, wenn das Popup angezeigt wird. Aus diesem Grund können Sie sich beispielsweise nicht darauf verlassen, dass ein „ ListView “ innerhalb eines geschlossenen „ Popup “ seine Eigenschaft „ count “ aktualisiert:

import QtQuick
import QtQuick.Controls

ApplicationWindow {
    width: 640
    height: 480
    visible: true

    SomeModel {
        id: someModel
    }

    Button {
        text: view.count
        onClicked: popup.open()
    }

    Popup {
        id: popup
        width: 400
        height: 400
        contentItem: ListView {
            id: view
            model: someModel
            delegate: Label {
                text: display

                required property string display
            }
        }
    }
}

Im obigen Beispiel wird der Text des Buttons nicht aktualisiert, wenn Zeilen zu „ someModel “ hinzugefügt oder daraus entfernt werden, nachdem „ component completion “ aufgerufen wurde, solange das Popup geschlossen ist.

Stattdessen kann eine „ count “-Eigenschaft zu „ SomeModel “ hinzugefügt werden, die aktualisiert wird, sobald die Signale „ rowsInserted “, „ rowsRemoved “ und „ modelReset “ ausgesendet werden. Die „ Button “ kann diese Eigenschaft dann an ihre „ text “ binden.

Siehe auch „Popup-Steuerelemente“, „Anpassen von Popups“ und „ ApplicationWindow “.

Dokumentation zu den Eigenschaften

activeFocus : bool [read-only]

Diese Eigenschaft gibt an, ob das Popup den Fokus hat.

Siehe auch „ focus “ und „Keyboard Focus“ unter Qt Quick.

anchors.centerIn : Item [since QtQuick.Controls 2.5 (Qt 5.12)]

Anker bieten die Möglichkeit, ein Element zu positionieren, indem seine Beziehung zu anderen Elementen festgelegt wird.

Ein häufiger Anwendungsfall ist die Zentrierung eines Popups innerhalb seines übergeordneten Elements. Eine Möglichkeit hierfür bieten die Eigenschaften „ x “ und „ y “. Anker bieten einen bequemeren Ansatz:

Pane {
    // ...

    Popup {
        anchors.centerIn: parent
    }
}

Es ist auch möglich, das Popup mithilfe von ` Overlay` im Fenster zu zentrieren:

ApplicationWindow {
    id: window
    // ...

    Pane {
        // ...

        Popup {
            anchors.centerIn: Overlay.overlay
        }
    }
}

Dadurch lässt sich ein Popup von jeder Komponente aus ganz einfach im Fenster zentrieren.

Hinweis: Popups können nur innerhalb ihres unmittelbaren übergeordneten Elements oder des Fenster-Overlays zentriert werden; der Versuch, sie in anderen Elementen zu zentrieren, führt zu einer Warnung.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch ` Popup Positioning`, ` anchors` und Using Qt Quick Controls types in property declarations.

availableHeight : real [read-only]

Diese Eigenschaft gibt die Höhe an, die dem „ contentItem “ nach Abzug des vertikalen Abstands vom „ height “ des Popups zur Verfügung steht.

Siehe auch „ padding “, „ topPadding “ und „ bottomPadding “.

availableWidth : real [read-only]

Diese Eigenschaft gibt die Breite an, die dem „ contentItem “ zur Verfügung steht, nachdem der horizontale Abstand („padding“) vom „ width “ des Popups abgezogen wurde.

Siehe auch „ padding “, „ leftPadding “ und „ rightPadding “.

background : Item

Diese Eigenschaft enthält das Hintergrundelement.

Hinweis: Wenn für das Hintergrundelement keine explizite Größe angegeben ist, passt es sich automatisch an die Größe des Popups an. In den meisten Fällen ist es nicht erforderlich, Breite oder Höhe für ein Hintergrundelement anzugeben.

Hinweis: Die meisten Popups verwenden die implizite Größe des Hintergrundelements, um die implizite Größe des Popups selbst zu berechnen. Wenn Sie das Hintergrundelement durch ein benutzerdefiniertes Element ersetzen, sollten Sie auch eine sinnvolle implizite Größe dafür festlegen (es sei denn, es handelt sich um ein Element wie „ Image “, das über eine eigene implizite Größe verfügt).

Siehe auch „Popup anpassen“.

bottomInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft legt den unteren Rand des Hintergrunds fest.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch Popup Layout und topInset.

bottomMargin : real

Diese Eigenschaft gibt den Abstand zwischen der Unterkante des Popups und der Unterkante seines Fensters an.

Ein Popup mit einem negativen unteren Rand wird nicht bis an die Unterkante des umgebenden Fensters herangeschoben. Der Standardwert ist „ -1 “.

Siehe auch „ margins “, „ topMargin “ und „ Popup Layout “.

bottomPadding : real

Diese Eigenschaft legt den unteren Abstand fest. Sofern nicht ausdrücklich festgelegt, entspricht der Wert „ verticalPadding “.

Die Abstands-Eigenschaften dienen zur Steuerung der Geometrie des „ content item “.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Siehe auch „ padding“ , „ topPadding “, „ verticalPadding “ und „ availableHeight “.

clip : bool

Diese Eigenschaft gilt unabhängig davon, ob das Clipping aktiviert ist. Der Standardwert lautet „ false “. Das Clipping funktioniert nur, wenn sich das Popup-Fenster nicht in einem eigenen Fenster befindet.

closePolicy : enumeration

Diese Eigenschaft legt fest, unter welchen Umständen das Popup-Fenster geschlossen wird. Die Flags können kombiniert werden, um verschiedene Möglichkeiten zum Schließen des Popup-Fensters zu ermöglichen.

Die verfügbaren Werte sind:

KonstanteBeschreibung
Popup.NoAutoCloseDas Popup wird nur geschlossen, wenn dies manuell angeordnet wird.
Popup.CloseOnPressOutsideDas Popup wird geschlossen, wenn die Maustaste außerhalb des Popups gedrückt wird.
Popup.CloseOnPressOutsideParentDas Popup wird geschlossen, wenn die Maustaste außerhalb seines übergeordneten Elements gedrückt wird.
Popup.CloseOnReleaseOutsideDas Popup wird geschlossen, wenn die Maustaste außerhalb des Popups losgelassen wird.
Popup.CloseOnReleaseOutsideParentDas Popup wird geschlossen, wenn die Maustaste außerhalb seines übergeordneten Elements losgelassen wird.
Popup.CloseOnEscapeDas Popup wird geschlossen, wenn die Escape-Taste gedrückt wird, während das Popup den Fokus hat.
Popup.CloseMultipleBei der Verwendung mehrerer verschachtelter Popups wird standardmäßig bei jedem Klick außerhalb nur das oberste Popup geschlossen. Ist bei dem sich schließenden Popup dieses Flag gesetzt, wird auch das nächste Popup im Stapel überprüft: Befand sich die Klickposition ebenfalls außerhalb dieses Popups, wird auch dieses geschlossen. Diese Kaskade setzt sich entlang des Stapels fort, bis alle Popups geschlossen sind, ein Popup erreicht wird, dessen Begrenzungsbereich die Klickposition enthält, oder ein Popup ohne das Flag „ CloseMultiple “ geschlossen wird. Muss mit mindestens einem der Flags „ CloseOnPress* “ oder „ CloseOnRelease* “ kombiniert werden.

Der Standardwert ist „ Popup.CloseOnEscape | Popup.CloseOnPressOutside “.

Hinweis: Es gibt eine bekannte Einschränkung, dass die Richtlinien „ Popup.CloseOnReleaseOutside “ und „ Popup.CloseOnReleaseOutsideParent “ nur mit Popups vom Typ „ modal “ funktionieren.

contentChildren : list<Item>

Diese Eigenschaft enthält die Liste der untergeordneten Elemente.

Die Liste enthält alle Elemente, die in QML als untergeordnete Elemente des Popups deklariert wurden.

Hinweis: Im Gegensatz zu „ contentData “ enthält „ contentChildren “ keine nicht-visuellen QML-Objekte.

Siehe auch „ Item::children “ und „ contentData “.

contentData : list<QtObject> [default]

Diese Eigenschaft enthält die Liste der Inhaltsdaten.

Die Liste enthält alle Objekte, die in QML als untergeordnete Elemente des Popups deklariert wurden.

Hinweis: Im Gegensatz zu „ contentChildren “ umfasst „ contentData “ auch nicht-visuelle QML-Objekte.

Siehe auch „ Item::data “ und „ contentChildren “.

contentHeight : real

Diese Eigenschaft gibt die Höhe des Inhalts an. Sie wird zur Berechnung der impliziten Gesamthöhe des Popups verwendet.

Weitere Informationen finden Sie unter Popup Sizing.

Siehe auch contentWidth.

contentItem : Item

Diese Eigenschaft enthält das Inhaltselement des Popups.

Das Inhaltselement ist die visuelle Umsetzung des Popups. Wenn das Popup sichtbar gemacht wird, wird das Inhaltselement automatisch dem „ overlay item “ untergeordnet.

Hinweis: Das Inhaltselement wird automatisch so in der Größe angepasst, dass es in den „ padding “ des Popups passt.

Hinweis: Die meisten Popups verwenden die implizite Größe des Inhaltselements, um die implizite Größe des Popups selbst zu berechnen. Wenn Sie das Inhaltselement durch ein benutzerdefiniertes ersetzen, sollten Sie auch eine sinnvolle implizite Größe dafür festlegen (es sei denn, es handelt sich um ein Element wie „ Text “, das über eine eigene implizite Größe verfügt).

Siehe auch „Popup anpassen“.

contentWidth : real

Diese Eigenschaft enthält die Breite des Inhalts. Sie dient zur Berechnung der impliziten Gesamtbreite des Popups.

Weitere Informationen finden Sie unter Popup Sizing.

Siehe auch contentHeight.

dim : bool

Diese Eigenschaft legt fest, ob das Popup den Hintergrund abdunkelt.

Sofern nicht explizit festgelegt, übernimmt diese Eigenschaft den Wert von „ modal “. Um zum Standardwert zurückzukehren, setzen Sie diese Eigenschaft auf „ undefined “.

Siehe auch „ modal “ und „ Overlay.modeless “.

enabled : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

Diese Eigenschaft gibt an, ob das Popup aktiviert ist. Der Standardwert lautet „ true “.

Diese Eigenschaft wurde in QtQuick.Controls 2.3 (Qt 5.10) eingeführt.

Siehe auch „ visible “ und „ Item::enabled “.

enter : Transition

Diese Eigenschaft legt den Übergang fest, der auf das Popup-Element angewendet wird, wenn das Popup geöffnet wird und in den Bildschirm einblendet.

Das folgende Beispiel animiert die Deckkraft des Popups, wenn es auf dem Bildschirm erscheint:

Popup {
    enter: Transition {
        NumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
    }
}

Siehe auch „ exit “.

exit : Transition

Diese Eigenschaft enthält den Übergangseffekt, der auf das Popup-Element angewendet wird, wenn das Popup geschlossen wird und den Bildschirm verlässt.

Das folgende Beispiel animiert die Deckkraft des Popups, wenn es den Bildschirm verlässt:

Popup {
    exit: Transition {
        NumberAnimation { property: "opacity"; from: 1.0; to: 0.0 }
    }
}

Siehe auch „ enter “.

focus : bool

Diese Eigenschaft gibt an, ob das Popup den Fokus erhalten soll.

Wenn das Popup tatsächlich den Fokus erhält, wird „ activeFocus “ auf „ true “ gesetzt. Weitere Informationen finden Sie unter „Keyboard Focus“ unter Qt Quick.

Der Standardwert ist „ false “.

Siehe auch „ activeFocus “.

font : font

Diese Eigenschaft enthält die derzeit für das Popup festgelegte Schriftart.

Das Popup gibt explizite Schriftarteneigenschaften an seine untergeordneten Elemente weiter. Wenn Sie eine bestimmte Eigenschaft der Schriftart eines Popups ändern, wird diese Eigenschaft an alle untergeordneten Elemente des Popups weitergegeben und überschreibt dabei alle Systemstandardwerte für diese Eigenschaft.

Popup {
    font.family: "Courier"

    Column {
        Label {
            text: qsTr("This will use Courier...")
        }

        Switch {
            text: qsTr("... and so will this")
        }
    }
}

Siehe auch Control::font und ApplicationWindow::font.

height : real

Diese Eigenschaft gibt die Höhe des Popups an.

horizontalPadding : real [since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft legt den horizontalen Abstand fest. Sofern nicht ausdrücklich festgelegt, entspricht der Wert dem Wert „ padding “.

Die Abstands-Eigenschaften dienen zur Steuerung der Geometrie des „ content item “.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch „ padding“ , „ leftPadding “, „ rightPadding “ und „ verticalPadding “.

implicitBackgroundHeight : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft enthält die implizite Hintergrundhöhe.

Der Wert entspricht ` background ? background.implicitHeight : 0`.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch „ implicitBackgroundWidth “ und „ implicitContentHeight “.

implicitBackgroundWidth : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft enthält die implizite Hintergrundbreite.

Der Wert entspricht „ background ? background.implicitWidth : 0 “.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch „ implicitBackgroundHeight “ und „ implicitContentWidth “.

implicitContentHeight : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft enthält die implizite Höhe des Inhalts.

Der Wert wird auf der Grundlage der untergeordneten Inhaltselemente berechnet.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch implicitContentWidth und implicitBackgroundHeight.

implicitContentWidth : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft enthält die implizite Breite des Inhalts.

Der Wert wird auf der Grundlage der untergeordneten Inhaltselemente berechnet.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch implicitContentHeight und implicitBackgroundWidth.

implicitHeight : real

Diese Eigenschaft enthält die implizite Höhe des Popups.

implicitWidth : real

Diese Eigenschaft gibt die implizite Breite des Popups an.

leftInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft legt den linken Abstand zum Hintergrund fest.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch Popup Layout und rightInset.

leftMargin : real

Diese Eigenschaft gibt den Abstand zwischen dem linken Rand des Popups und dem linken Rand seines Fensters an.

Ein Popup mit einem negativen linken Rand wird nicht innerhalb des linken Randes des umgebenden Fensters platziert. Der Standardwert ist „ -1 “.

Siehe auch „ margins “, „ rightMargin “ und „ Popup Layout “.

leftPadding : real

Diese Eigenschaft legt den linken Abstand fest. Sofern nicht ausdrücklich festgelegt, entspricht der Wert dem Wert „ horizontalPadding “.

Die Abstands-Eigenschaften dienen zur Steuerung der Geometrie des „ content item “.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Siehe auch „ padding“ , „ rightPadding “, „ horizontalPadding “ und „ availableWidth “.

locale : Locale

Diese Eigenschaft enthält die Ländereinstellung des Popups.

Siehe auch mirrored und LayoutMirroring.

margins : real

Diese Eigenschaft gibt den Abstand zwischen den Rändern des Popups und den Rändern seines Fensters an.

Ein Popup mit negativen Rändern wird nicht innerhalb der Grenzen des umgebenden Fensters verschoben. Der Standardwert ist „ -1 “.

Siehe auch „ topMargin“ , „ leftMargin “, „ rightMargin “, „ bottomMargin “ und „ Popup Layout “.

mirrored : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]

Diese Eigenschaft gibt an, ob das Popup gespiegelt ist.

Diese Eigenschaft dient der Benutzerfreundlichkeit. Ein Popup gilt als gespiegelt, wenn seine visuelle Ausrichtungsrichtung von rechts nach links verläuft, d. h. bei Verwendung einer von rechts nach links ausgerichteten Locale.

Diese Eigenschaft wurde in QtQuick.Controls 2.3 (Qt 5.10) eingeführt.

Siehe auch „ locale “ und „Right-to-left User Interfaces“.

Diese Eigenschaft gibt an, ob das Popup modal ist.

Modale Popups weisen häufig einen charakteristischen Hintergrundabdunkelungseffekt auf, der unter „ Overlay.modal “ definiert ist, und lassen keine Klick- oder Loslass-Ereignisse an darunterliegende Elemente durch. Wenn der Benutzer beispielsweise versehentlich außerhalb eines Popups klickt, erhält kein Element unterhalb dieses Popups an der Stelle des Klicks das Ereignis.

Auf Desktop-Plattformen ist es üblich, dass modale Popups nur durch Drücken der Escape-Taste geschlossen werden. Um dieses Verhalten zu erzielen, setzen Sie „ closePolicy “ auf „ Popup.CloseOnEscape “. Standardmäßig ist „ closePolicy “ auf „ Popup.CloseOnEscape | Popup.CloseOnPressOutside “ gesetzt, was bedeutet, dass ein Klick außerhalb eines modalen Popups dieses schließt.

Der Standardwert ist „ false “.

Siehe auch dim.

opacity : real

Diese Eigenschaft legt die Deckkraft des Popups fest. Die Deckkraft wird als Zahl zwischen 0.0 (vollständig transparent) und 1.0 (vollständig undurchsichtig) angegeben. Der Standardwert ist 1.0.

Siehe auch visible.

opened : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

Diese Eigenschaft gibt an, ob das Popup vollständig geöffnet ist. Das Popup gilt als geöffnet, wenn es sichtbar ist und weder der Übergang „ enter “ noch der Übergang „ exit “ ausgeführt wird.

Diese Eigenschaft wurde in QtQuick.Controls 2.3 (Qt 5.10) eingeführt.

Siehe auch „ open()“, „ close()“ und „ visible “.

padding : real

Diese Eigenschaft legt den Standard-Abstand fest.

Die Abstands-Eigenschaften dienen zur Steuerung der Geometrie des content item.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Siehe auch „ availableWidth“ , „ availableHeight “, „ topPadding “, „ leftPadding “, „ rightPadding “ und „ bottomPadding “.

palette : palette [since QtQuick.Controls 2.3 (Qt 5.10)]

Diese Eigenschaft enthält die derzeit für das Popup festgelegte Palette.

Das Popup überträgt explizite Paletteneigenschaften an seine untergeordneten Elemente. Wenn Sie eine bestimmte Eigenschaft in der Palette eines Popups ändern, wird diese Eigenschaft an alle untergeordneten Elemente des Popups weitergegeben und überschreibt dabei alle Systemstandardwerte für diese Eigenschaft.

Popup {
    palette.text: "red"

    Column {
        Label {
            text: qsTr("This will use red color...")
        }

        Switch {
            text: qsTr("... and so will this")
        }
    }
}

Siehe auch: Item::palette, Window::palette, ColorGroup, Palette

Diese Eigenschaft wurde in QtQuick.Controls 2.3 (Qt 5.10) eingeführt.

parent : Item

Diese Eigenschaft enthält das übergeordnete Element.

popupType : enumeration [since 6.8]

Diese Eigenschaft legt fest, welche Art von Popup bevorzugt wird.

Verfügbare Optionen:

KonstanteBeschreibung
ItemDas Popup wird in die „ same scene as the parent “ eingebettet, ohne dass ein separates Fenster verwendet wird.
WindowDas Popup wird in einem „ separate window “ angezeigt. Wenn die Plattform keine mehreren Fenster unterstützt, wird stattdessen „ Popup.Item “ verwendet.
NativeDas Popup wird plattformnativ angezeigt. Wenn die Plattform keine nativen Popups unterstützt, wird stattdessen „ Popup.Window “ verwendet.

Ob ein Popup den bevorzugten Typ verwenden kann, hängt von der Plattform ab. „ Popup.Item “ wird auf allen Plattformen unterstützt, während „ Popup.Window “ und „ Popup.Native “ normalerweise nur auf Desktop-Plattformen unterstützt werden. Wenn es sich bei einem Popup zudem um ein „ Menu “ innerhalb eines „ native menubar “ handelt, ist das Menü ebenfalls plattformspezifisch. Und wenn das Menü ein Untermenü innerhalb eines anderen Menüs ist, bestimmt das übergeordnete (oder Stamm-)Menü den Typ.

Der Standardwert ist in der Regel „ Popup.Item “, mit einigen oben genannten Ausnahmen. Dies könnte sich in zukünftigen Versionen von Qt ändern, insbesondere für bestimmte Stile und Plattformen, die von der Verwendung anderer Popup-Typen profitieren. Wenn Sie beispielsweise auf macOS für alle Stile stets native Menüs verwenden möchten, können Sie Folgendes tun:

Menu {
    popupType: Qt.platform.os === "osx" ? Popup.Native : Popup.Window
}

Wenn du dich entscheidest, ein Popup anzupassen (indem du beispielsweise einen der Delegaten änderst), solltest du außerdem in Betracht ziehen, den Popup-Typ ebenfalls auf „ Popup.Window “ zu setzen. Dadurch wird sichergestellt, dass deine Änderungen auf allen Plattformen und für alle Stile sichtbar sind. Andernfalls werden die Delegaten bei Verwendung nativer Menüs nicht für die Darstellung verwendet.

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch „ Popup type “.

rightInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft legt den rechten Versatz für den Hintergrund fest.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch Popup Layout und leftInset.

rightMargin : real

Diese Eigenschaft gibt den Abstand zwischen dem rechten Rand des Popups und dem rechten Rand seines Fensters an.

Ein Popup mit einem negativen rechten Rand wird nicht bis an den rechten Rand des umgebenden Fensters verschoben. Der Standardwert ist „ -1 “.

Siehe auch „ margins “, „ leftMargin “ und „ Popup Layout “.

rightPadding : real

Diese Eigenschaft legt den rechten Abstand fest. Sofern nicht ausdrücklich festgelegt, entspricht der Wert „ horizontalPadding “.

Die Padding-Eigenschaften dienen zur Steuerung der Geometrie des „ content item “.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Siehe auch „ padding“ , „ leftPadding “, „ horizontalPadding “ und „ availableWidth “.

scale : real

Diese Eigenschaft enthält den Skalierungsfaktor des Popups. Der Standardwert ist 1.0.

Ein Skalierungsfaktor kleiner als „ 1.0 “ bewirkt, dass das Popup in einer kleineren Größe dargestellt wird, während ein Skalierungsfaktor größer als „ 1.0 “ das Popup in einer größeren Größe anzeigt. Negative Skalierungsfaktoren werden nicht unterstützt.

spacing : real [since QtQuick.Controls 2.1 (Qt 5.8)]

Diese Eigenschaft legt den Abstand fest.

Der Abstand ist nützlich für Popups, die mehrere oder sich wiederholende Bausteine enthalten. Beispielsweise verwenden einige Stile den Abstand, um den Abstand zwischen Kopfzeile, Inhalt und Fußzeile von ` Dialog` zu bestimmen. Der Abstand wird von `Popup` nicht erzwungen, sodass jeder Stil ihn unterschiedlich interpretieren kann und manche ihn möglicherweise gänzlich ignorieren.

Diese Eigenschaft wurde in QtQuick.Controls 2.1 (Qt 5.8) eingeführt.

topInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft legt den oberen Rand des Hintergrunds fest.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch Popup Layout und bottomInset.

topMargin : real

Diese Eigenschaft gibt den Abstand zwischen der Oberkante des Popups und der Oberkante seines Fensters an.

Ein Popup mit einem negativen oberen Rand wird nicht innerhalb der Oberkante des umgebenden Fensters verschoben. Der Standardwert ist „ -1 “.

Siehe auch „ margins “, „ bottomMargin “ und „ Popup Layout “.

topPadding : real

Diese Eigenschaft legt den oberen Abstand fest. Sofern nicht ausdrücklich festgelegt, entspricht der Wert „ verticalPadding “.

Die Padding-Eigenschaften dienen zur Steuerung der Geometrie des „ content item “.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Siehe auch „ padding“ , „ bottomPadding “, „ verticalPadding “ und „ availableHeight “.

transformOrigin : enumeration

Diese Eigenschaft enthält den Ursprungspunkt für Transformationen bei Ein- und Ausblendübergängen.

Es stehen neun Transformationsursprungspunkte zur Verfügung, wie in der Abbildung unten dargestellt. Der Standard-Transformationsursprung ist „ Popup.Center “.

Popup zur Veranschaulichung der Transformationsursprungspunkte

Siehe auch „ enter “, „ exit “ und „ Item::transformOrigin “.

verticalPadding : real [since QtQuick.Controls 2.5 (Qt 5.12)]

Diese Eigenschaft legt den vertikalen Abstand fest. Sofern nicht ausdrücklich festgelegt, entspricht der Wert dem Wert „ padding “.

Die Abstands-Eigenschaften dienen zur Steuerung der Geometrie des „ content item “.

„Popup“ verwendet denselben Ansatz für den Abstand wie „ Control “. Eine visuelle Erläuterung des Abstandssystems finden Sie im Abschnitt „ Control Layout “ der Dokumentation.

Diese Eigenschaft wurde in QtQuick.Controls 2.5 (Qt 5.12) eingeführt.

Siehe auch „ padding“ , „ topPadding “, „ bottomPadding “ und „ horizontalPadding “.

visible : bool

Diese Eigenschaft gibt an, ob das Popup sichtbar ist. Der Standardwert lautet „ false “.

Siehe auch „ open()“, „ close()“ und „ opened “.

width : real

Diese Eigenschaft gibt die Breite des Popups an.

x : real

Diese Eigenschaft enthält die x-Koordinate des Popups.

Siehe auch y und z.

y : real

Diese Eigenschaft enthält die y-Koordinate des Popups.

Siehe auch x und z.

z : real

Diese Eigenschaft enthält den Z-Wert des Popups. Der Z-Wert bestimmt die Stapelreihenfolge der Popups.

Wenn zwei sichtbare Popups denselben Z-Wert haben, wird das zuletzt geöffnete Popup oberste Schicht haben.

Wenn für ein Popup beim Öffnen kein Z-Wert explizit festgelegt wurde und es ein untergeordnetes Element eines bereits geöffneten Popups ist, wird es über dessen übergeordnetem Element angeordnet. Dadurch wird sichergestellt, dass untergeordnete Elemente niemals unter ihren übergeordneten Elementen verborgen werden.

Verfügt das Popup über ein eigenes Fenster, bestimmt der Z-Wert stattdessen die Stapelreihenfolge der Fenster.

Der Standard-Z-Wert lautet „ 0 “.

Siehe auch x und y.

Signal-Dokumentation

void aboutToHide()

Dieses Signal wird ausgelöst, wenn das Popup-Fenster kurz davor ist, ausgeblendet zu werden.

Hinweis: Der entsprechende Handler lautet „ onAboutToHide “.

Siehe auch closed().

void aboutToShow()

Dieses Signal wird ausgelöst, wenn das Popup kurz vor der Anzeige steht.

Hinweis: Der entsprechende Handler ist ` onAboutToShow`.

Siehe auch opened().

void closed()

Dieses Signal wird ausgelöst, wenn das Popup-Fenster geschlossen wird.

Hinweis: Der entsprechende Handler lautet „ onClosed “.

Siehe auch aboutToHide().

void opened()

Dieses Signal wird ausgelöst, wenn das Popup-Fenster geöffnet wird.

Hinweis: Der entsprechende Handler lautet onOpened.

Siehe auch aboutToShow().

Methodendokumentation

void close()

Schließt das Popup-Fenster.

Siehe auch „ visible “.

void forceActiveFocus(enumeration reason = Qt.OtherFocusReason)

Richtet den aktiven Fokus auf das Popup mit der angegebenen ID „ reason “.

Diese Methode setzt den Fokus auf das Popup und stellt sicher, dass alle übergeordneten „ FocusScope “-Objekte in der Objekthierarchie ebenfalls den Status „ focus “ erhalten.

Siehe auch „ activeFocus “ und „ Qt::FocusReason “.

void open()

Öffnet das Popup-Fenster.

Siehe auch visible.

© 2026 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.