CustomControl QML Type
Legt das Design für ein benutzerdefiniertes (nicht integriertes) Steuerelement fest. Mehr...
| Import Statement: | import Qt.labs.StyleKit |
| Inherits: | |
| Status: | Technology preview |
Dieser Typ befindet sich in der Technologievorschau und kann sich noch ändern.
Eigenschaften
- controlType : int
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.