Settings QML Type
Bietet persistente, plattformunabhängige Anwendungseinstellungen. Mehr...
Import Statement: | import QtCore |
Since: | Qt 6.5 |
Inherits: |
Eigenschaften
Methoden
Detaillierte Beschreibung
Der Typ Einstellungen bietet dauerhafte, plattformunabhängige Anwendungseinstellungen.
Benutzer erwarten normalerweise, dass eine Anwendung ihre Einstellungen (Fenstergrößen und -positionen, Optionen usw.) über mehrere Sitzungen hinweg beibehält. Mit dem Typ Einstellungen können Sie solche Anwendungseinstellungen mit minimalem Aufwand speichern und wiederherstellen.
Individuelle Einstellungswerte werden durch die Deklaration von Eigenschaften innerhalb eines Settings-Elements festgelegt. Es werden nur Wertetypen unterstützt, die von QSettings erkannt werden. Es wird empfohlen, Eigenschafts-Aliase zu verwenden, um automatische Eigenschaftsaktualisierungen in beide Richtungen zu erhalten. Das folgende Beispiel zeigt, wie Settings verwendet wird, um die Geometrie eines Fensters zu speichern und wiederherzustellen.
import QtCore import QtQuick 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 QtCore import QtQuick 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 location 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.
Einstellungen als Singleton
Oft ist es sinnvoll, Einstellungen in jeder QML-Datei als Singleton zur Verfügung zu haben. Ein Beispiel dafür finden Sie in der To Do-Liste. Genauer gesagt ist AppSettings.qml das Singleton, und in der Datei CMakeLists.txt wird die Eigenschaft QT_QML_SINGLETON_TYPE
für diese Datei über set_source_files_properties
auf TRUE
gesetzt.
Anmerkungen
Die aktuelle Implementierung basiert auf QSettings. Dies bringt einige Einschränkungen mit sich, wie z.B. fehlende Änderungsbenachrichtigungen. Das Schreiben eines Einstellungswerts über eine Instanz von Settings aktualisiert den Wert in einer anderen Settings-Instanz 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. Siehe QSettings für weitere Details.
Siehe auch QSettings.
Eigenschaft Dokumentation
category : string |
Diese Eigenschaft enthält den Namen der Einstellungskategorie.
Kategorien können verwendet werden, um verwandte Einstellungen zusammenzufassen.
Siehe auch QSettings::group.
location : url |
Diese Eigenschaft enthält den Pfad zu der Einstellungsdatei. Wenn die Datei noch nicht vorhanden ist, wird sie erstellt.
Wenn diese Eigenschaft leer ist (Standardeinstellung), wird QSettings::defaultFormat() verwendet. Andernfalls wird QSettings::IniFormat verwendet.
Siehe auch QSettings::fileName, QSettings::defaultFormat, und QSettings::IniFormat.
Methode Dokumentation
Setzt den Wert der Einstellung key auf value. Wenn der Schlüssel bereits existiert, wird der vorherige Wert überschrieben.
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 aus dem 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.
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.