Ändern der style
einer Komponente, scheint alle die Funktionen des Standardstils zu ersetzen. Gibt es eine Möglichkeit, nur ein Merkmal zu ändern?QT QML wie man nur eine Eigenschaft eines, sagen wir, Button-Stil ändern
Zum Beispiel nehme ich an, ich möchte einen roten Knopf;
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
ApplicationWindow
{
visible: true
width: 640
height: 480
Button
{
height: 200
width: 200
text: "Press me"
style: ButtonStyle
{
// changes background but also throws away everything else
// in standard button style
background: Rectangle { color: "red" }
}
}
}
Neudefinition ButtonStyle
mit einem background
zum Ändern der Farbe der Schaltfläche funktioniert gut, aber dann alles andere im System standardmäßig ButtonStyle
ist verschwunden. Zum Beispiel, der Rahmen und der Klick markieren.
Wie man nur eine Funktion ändert und den Rest behält?
Es tut uns leid, wenn dies zuvor gefragt wurde.
Dank,
aktualisiert
Die obige Frage für Kontrollen 1 war, aber das gleiche Problem existiert für Kontrollen 2. Hier ist das gleiche Codebeispiel für Kontrollen 2.
import QtQuick 2.7
import QtQuick.Controls 2.1
ApplicationWindow
{
visible: true
width: 640
height: 480
Button
{
height: 200
width: 200
text: "Press me"
// changes background but also throws away everything else
// in standard button style
background: Rectangle { color: "red" }
}
}
Scheißer. Entschuldigung ja, ich sollte Controls2.Button verwenden. Ich habe das geändert, aber es ist das gleiche außer 'Label' ->' contentItem'. Dann habe ich das gleiche Problem, wenn ich überschreibe, sagen 'Hintergrund. Ich mag deine Ideen zu Shadern und 'Colorize'. Ich denke, es ist eine bessere Möglichkeit, Stil hinzuzufügen, als diese Eigenschaften zu ändern. FWIW, ich denke, die Eigenschaften sind schlechtes Design, wenn man das Original nicht irgendwie erben kann. Vielen Dank. Ich werde mit deinen Vorschlägen gehen. –
Bitte aktualisieren Sie Ihre Frage, um zu reflektieren, was Sie tatsächlich verwenden. Sie sind zwei sehr unterschiedliche Styling-APIs. – Mitch
Obwohl ich bereits die Antwort auf einige Möglichkeiten, die Sie mit dem 'QtQuick.Controls 2.x 'haben, aktualisiert habe, wäre es gut, die Frage zu aktualisieren, damit sie auch anderen helfen kann. Bitte vergessen Sie nicht, die Antwort zu akzeptieren, wenn sie enthält, was Sie gesucht haben. Bitte tun Sie das auch, für alle Antworten auf Ihre anderen Fragen, denn dies ist beides: Höflich zu den Leuten, die sich die Zeit genommen haben zu antworten, und Leuten zu helfen, die Antwort zu finden, wenn sie das gleiche Problem haben wie Sie. – derM