Auf dieser Seite

CustomControl QML Type

Legt das Design für ein benutzerdefiniertes (nicht integriertes) Steuerelement fest. Mehr...

Import Statement: import Qt.labs.StyleKit
Inherits:

ControlStyle

Status: Technology preview

Dieser Typ befindet sich in der Technologievorschau und kann sich noch ändern.

Eigenschaften

Ausführliche Beschreibung

Mit CustomControl können Sie Steuerelemente definieren und gestalten, die nicht Teil von Qt Quick Controls. Dies ist praktisch, wenn Sie über zusätzliche Steuerelemente oder Komponenten verfügen, deren Gestaltung sich nach dem aktiven „ Style “ und „ Theme “ richten soll.

Wie die integrierten Steuerelementtypen (z. B. „ abstractButton “, „ pane “ und „ slider “) erbt „CustomControl“ von „ ControlStyle “. Im Gegensatz zu den integrierten Typen, die implizit mit ihrem Steuerelementtyp verknüpft sind, muss bei einem „CustomControl“ „ controlType “ explizit festgelegt werden. Abgesehen davon funktionieren sie genau gleich.

Ein „ Style “ oder „ Theme “ kann beliebig viele benutzerdefinierte Steuerelemente definieren, und ein „CustomControl“ in einem „Theme“ kann denselben „ controlType “ haben wie eines im „ Style “. Dies unterscheidet sich beispielsweise nicht davon, dass ein „ slider “ sowohl durch das „ Style “ als auch durch das „ Theme “ gestylt wird. Die Fallback-Logik ist dieselbe.

Alle Stileigenschaften, die nicht für ein „CustomControl“ festgelegt sind, greifen auf die für ein „ control “ festgelegten zurück.

Der folgende Codeausschnitt zeigt, wie man das Styling für ein benutzerdefiniertes Steuerelement definiert:

// MyStyle.qml

Style {
    id: style
    readonly property int myControlType: 0
    CustomControl {
        controlType: style.myControlType
        background {
            width: 120
            height: 30
            radius: 0
        }
        hovered.background.color: "lightslategray"
        pressed.background.color: "skyblue"
    }
}

Und der folgende Codeausschnitt zeigt ein Beispiel für die Implementierung eines benutzerdefinierten Steuerelements, das dieses nutzt:

// Main.qml

component MyControl : Rectangle {
    StyleReader {
        id: styleReader
        controlType: StyleKit.style.myControlType
        hovered: hoverHandler.hovered
        pressed: tapHandler.pressed
        palette: app.palette
    }

    HoverHandler { id: hoverHandler }
    TapHandler { id: tapHandler }

    implicitWidth: styleReader.background.width
    implicitHeight: styleReader.background.height
    color: styleReader.background.color
    radius: styleReader.background.radius

    Text {
        font: styleReader.font
        anchors.centerIn: parent
        text: "ok"
    }
}

Hinweis: Es kann nicht garantiert werden, dass die Typen in Qt.labs-Modulen in zukünftigen Versionen kompatibel bleiben.

Siehe auch StyleReader, ControlStyle, Style und StylableControls::getControlStyle().

Dokumentation zu den Eigenschaften

controlType : int

Eine eindeutige Ganzzahl, die diesen benutzerdefinierten Steuerelementtyp identifiziert. Legen Sie denselben Wert für die Eigenschaft „ StyleReader.controlType “ in Ihrer benutzerdefinierten Steuerelementimplementierung fest, um das Steuerelement mit dieser Stildefinition zu verknüpfen.

Benutzerdefinierte Steuerelementtypen müssen im Bereich von 0 bis 100000 liegen.

Siehe auch „ StyleReader.controlType “ und „ StylableControls::getControlStyle()“.

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