Settings QML Type
Stellt dauerhafte, plattformunabhängige Anwendungseinstellungen bereit. Mehr...
| Import Statement: | import Qt.labs.settings 1.0 |
| Status: | Deprecated since 6.5 |
Dieser Typ ist seit Qt.labs.settings 6.5 veraltet. Wir raten dringend davon ab, ihn in neuem Code zu verwenden.
Eigenschaften
Methoden
- void setValue(string key, var value)
(since Qt 5.12) - void sync()
- var value(string key, var defaultValue)
(since Qt 5.12)
Ausführliche Beschreibung
Verwenden Sie stattdessen „ Settings “ von Qt Qml Core.
Der Typ „Settings“ bietet dauerhafte, plattformunabhängige Anwendungseinstellungen.
Hinweis: Dieser Typ wird durch den Import des Moduls „Qt.labs.settings“ bereitgestellt. Es kann nicht garantiert werden, dass die Typen im Modul „Qt.labs“ in zukünftigen Versionen kompatibel bleiben.
Benutzer erwarten normalerweise, dass sich eine Anwendung ihre Einstellungen (Fenstergrößen und -positionen, Optionen usw.) über mehrere Sitzungen hinweg merkt. Der Typ „Settings“ ermöglicht es Ihnen, solche Anwendungseinstellungen mit minimalem Aufwand zu speichern und wiederherzustellen.
Einzelne Einstellungswerte werden durch die Deklaration von Eigenschaften innerhalb eines „Settings“-Elements festgelegt. Alle Eigenschaften vom Typ „Wert“ werden unterstützt. Es wird empfohlen, Eigenschaftsaliase zu verwenden, um automatische Aktualisierungen der Eigenschaften in beide Richtungen zu gewährleisten. Das folgende Beispiel zeigt, wie man mit „Settings“ die Geometrie eines Fensters speichert und wiederherstellt.
import QtQuick.Window
import Qt.labs.settings
Window {
id: window
width: 800
height: 600
Settings {
property alias x: window.x
property alias y: window.y
property alias width: window.width
property alias height: window.height
}
}Beim ersten Start der Anwendung erhält das Fenster die als 800x600 festgelegten Standardabmessungen. Beachten Sie, dass keine Standardposition festgelegt ist – dies überlassen wir dem Fenstermanager. Später, wenn sich die Fenstergeometrie ändert, werden neue Werte automatisch in den persistenten Einstellungen gespeichert. Beim zweiten Start der Anwendung werden die Anfangswerte aus den persistenten Einstellungen abgerufen, wodurch das Fenster wieder an die vorherige Position und Größe zurückversetzt wird.
Eine vollständig deklarative Syntax, die durch die Verwendung von Eigenschaftsaliasen erreicht wird, hat den Nachteil, dass persistente Einstellungen jedes Mal gespeichert werden müssen, wenn sich die Werte der aliasierten Eigenschaften ändern. Normale Eigenschaften können verwendet werden, um eine feinere Kontrolle über das Speichern der persistenten Einstellungen zu erlangen. Das folgende Beispiel veranschaulicht, wie eine Einstellung beim Löschen einer Komponente gespeichert wird.
import QtQuick
import Qt.labs.settings
Item {
id: page
state: settings.state
states: [
State {
name: "active"
// ...
},
State {
name: "inactive"
// ...
}
]
Settings {
id: settings
property string state: "active"
}
Component.onDestruction: {
settings.state = page.state
}
}Beachten Sie, wie der Standardwert nun in der persistenten Einstellung angegeben wird und die eigentliche Eigenschaft an die Einstellung gebunden ist, um den Anfangswert aus den persistenten Einstellungen zu beziehen.
Anwendungskennungen
Anwendungsspezifische Einstellungen werden durch die Angabe der Anwendungs name, organization und domain oder durch die Angabe von fileName identifiziert.
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
app.setOrganizationName("Some Company");
app.setOrganizationDomain("somecompany.com");
app.setApplicationName("Amazing Application");
QQmlApplicationEngine engine("main.qml");
return app.exec();
}Diese werden in C++ typischerweise am Anfang von ` main()` angegeben, können aber auch in QML über die folgenden Eigenschaften gesteuert werden:
Kategorien
Anwendungseinstellungen können durch die Angabe eines Kategorienamens über die Eigenschaft ` category ` in logische Kategorien unterteilt werden. Die Verwendung logischer Kategorien sorgt nicht nur für eine übersichtlichere Einstellungsstruktur, sondern verhindert auch mögliche Konflikte zwischen Einstellungsschlüsseln.
Wenn mehrere Kategorien erforderlich sind, verwenden Sie mehrere „Settings“-Objekte, von denen jedes eine eigene Kategorie hat:
Item {
id: panel
visible: true
Settings {
category: "OutputPanel"
property alias visible: panel.visible
// ...
}
Settings {
category: "General"
property alias fontSize: fontSizeSpinBox.value
// ...
}
}Anstatt sicherzustellen, dass alle Einstellungen in der Anwendung eindeutige Namen haben, können die Einstellungen in eindeutige Kategorien unterteilt werden, die dann Einstellungen mit denselben Namen enthalten können, die auch in anderen Kategorien verwendet werden – ohne dass es zu Konflikten kommt.
Hinweise
Die aktuelle Implementierung basiert auf QSettings. Dies bringt gewisse Einschränkungen mit sich, wie beispielsweise fehlende Änderungsbenachrichtigungen. Das Schreiben eines Einstellungswerts mithilfe einer „Settings“-Instanz aktualisiert den Wert in einer anderen „Settings“-Instanz nicht, selbst wenn diese sich auf dieselbe Einstellung in derselben Kategorie beziehen.
Die Informationen werden unter Windows in der Systemregistrierung und unter macOS in XML-Einstellungsdateien gespeichert. Auf anderen Unix-Systemen werden mangels eines Standards INI-Textdateien verwendet. Weitere Details finden Sie in der Dokumentation unter QSettings.
Siehe auch Settings und QSettings.
Dokumentation zu Eigenschaften
category : string
Diese Eigenschaft enthält den Namen der Einstellungskategorie.
Kategorien können verwendet werden, um zusammengehörige Einstellungen zu gruppieren.
fileName : string [since Qt 5.12]
Diese Eigenschaft enthält den Pfad zur Einstellungsdatei. Falls die Datei noch nicht existiert, wird sie angelegt.
Diese Eigenschaft wurde in Qt 5.12 eingeführt.
Siehe auch QSettings::fileName und QSettings::IniFormat.
Methodendokumentation
[since Qt 5.12] void setValue(string key, var value)
Setzt den Wert der Einstellung „ key “ auf „ value “. Falls der Schlüssel bereits vorhanden ist, wird der bisherige Wert überschrieben.
Diese Methode wurde in Qt 5.12 eingeführt.
Siehe auch „ value()“ und „ QSettings::setValue “.
void sync()
Schreibt alle nicht gespeicherten Änderungen in den permanenten Speicher und lädt alle Einstellungen neu, die in der Zwischenzeit von einer anderen Anwendung geändert wurden.
Diese Funktion wird automatisch vom Destruktor von „ QSettings “ sowie in regelmäßigen Abständen von der Ereignisschleife aufgerufen, sodass Sie sie normalerweise nicht selbst aufrufen müssen.
Siehe auch ` QSettings::sync`.
[since Qt 5.12] var value(string key, var defaultValue)
Gibt den Wert für die Einstellung „ key “ zurück. Falls die Einstellung nicht vorhanden ist, wird „ defaultValue “ zurückgegeben.
Diese Methode wurde in Qt 5.12 eingeführt.
Siehe auch „ setValue()“ und „ QSettings::value “.
© 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.