Settings QML Type
Bietet persistente, plattformunabhängige Anwendungseinstellungen. 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
- setValue(string key, var value)
(since Qt 5.12)
- sync()
- var value(string key, var defaultValue)
(since Qt 5.12)
Ausführliche Beschreibung
Verwenden Sie stattdessen Settings von Qt Qml Core.
Der Settings-Typ bietet persistente, plattformunabhängige Anwendungseinstellungen.
Hinweis: Dieser Typ wird durch den Import des Moduls Qt.labs.settings verfügbar gemacht. Es ist nicht garantiert, dass Typen im Qt.labs-Modul 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, solche Anwendungseinstellungen mit minimalem Aufwand zu speichern und wiederherzustellen.
Individuelle Einstellungswerte werden durch die Deklaration von Eigenschaften innerhalb eines Settings-Elements festgelegt. Es werden alle Eigenschaften des Werttyps unterstützt. Es wird empfohlen, Eigenschafts-Aliase zu verwenden, um automatische Eigenschaftsaktualisierungen in beide Richtungen zu erhalten. Das folgende Beispiel zeigt, wie Einstellungen verwendet werden, um die Geometrie eines Fensters zu speichern und wiederherzustellen.
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 werden die Standardabmessungen des Fensters auf 800x600 festgelegt. Beachten Sie, dass keine Standardposition angegeben ist - das überlassen wir dem Fenstermanager. Wenn sich die Fenstergeometrie später ändert, werden die neuen Werte automatisch in den dauerhaften Einstellungen gespeichert. Beim zweiten Durchlauf der Anwendung werden die Anfangswerte aus den dauerhaften Einstellungen übernommen, so dass das Fenster wieder die vorherige Position und Größe einnimmt.
Eine vollständig deklarative Syntax, die durch die Verwendung von Eigenschaftsaliasen erreicht wird, hat den Nachteil, dass die dauerhaften Einstellungen gespeichert werden müssen, wenn sich die Werte der Aliaseigenschaften ändern. Normale Eigenschaften können verwendet werden, um eine feinere Kontrolle über die Speicherung der dauerhaften Einstellungen zu erhalten. Das folgende Beispiel zeigt, wie eine Einstellung bei der Zerstörung einer Komponente gespeichert werden kann.
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, dass der Standardwert jetzt in der Eigenschaft der dauerhaften Einstellung angegeben ist und die eigentliche Eigenschaft an die Einstellung gebunden ist, um den Anfangswert aus den dauerhaften Einstellungen zu erhalten.
Anwendungsbezeichner
Anwendungsspezifische Einstellungen werden durch die Angabe von 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 normalerweise in C++ am Anfang von main()
angegeben, können aber auch in QML über die folgenden Eigenschaften gesteuert werden:
Kategorien
Anwendungseinstellungen können in logische Kategorien unterteilt werden, indem ein Kategoriename über die Eigenschaft category angegeben wird. Die Verwendung logischer Kategorien sorgt nicht nur für eine übersichtlichere Struktur der Einstellungen, sondern verhindert auch mögliche Konflikte zwischen Einstellungsschlüsseln.
Wenn mehrere Kategorien erforderlich sind, verwenden Sie mehrere Einstellungsobjekte mit jeweils einer eigenen Kategorie:
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 in anderen Kategorien verwendet werden - ohne Konflikt.
Hinweise
Die aktuelle Implementierung basiert auf QSettings. Dies bringt gewisse Einschränkungen mit sich, wie z. B. fehlende Änderungsbenachrichtigungen. Das Schreiben eines Einstellungswertes mit einer Instanz von Einstellungen aktualisiert den Wert in einer anderen Instanz von Einstellungen nicht, selbst wenn sie sich auf dieselbe Einstellung in derselben Kategorie beziehen.
Die Informationen werden in der Systemregistrierung unter Windows und in XML-Einstellungsdateien unter macOS gespeichert. Auf anderen Unix-Systemen werden, in Ermangelung eines Standards, INI-Textdateien verwendet. Weitere Einzelheiten finden Sie in der Dokumentation QSettings.
Siehe auch Settings und QSettings.
Eigenschaft Dokumentation
category : string |
Diese Eigenschaft enthält den Namen der Einstellungskategorie.
Kategorien können verwendet werden, um verwandte Einstellungen zusammenzufassen.
fileName : string |
Diese Eigenschaft enthält den Pfad zu der Einstellungsdatei. Wenn die Datei noch nicht existiert, wird sie erstellt.
Diese Eigenschaft wurde in Qt 5.12 eingeführt.
Siehe auch QSettings::fileName und QSettings::IniFormat.
Dokumentation der Methode
Setzt den Wert der Einstellung key auf value. Wenn der Schlüssel bereits existiert, wird der vorherige Wert überschrieben.
Diese Methode wurde in Qt 5.12 eingeführt.
Siehe auch value() und QSettings::setValue.
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 und von der Ereignisschleife in regelmäßigen Abständen aufgerufen, so dass Sie sie normalerweise nicht selbst aufrufen müssen.
Siehe auch QSettings::sync.
Gibt den Wert für die Einstellung key zurück. Existiert die Einstellung nicht, wird defaultValue zurückgegeben.
Diese Methode wurde in Qt 5.12 eingeführt.
Siehe auch setValue() und QSettings::value.
© 2025 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.