Wenn meine Anwendung einige Einstellungen speichern soll, die beim Schließen einer Anwendung bestehen bleiben, wo soll ich sie dann speichern?
Ich spreche nichts Kompliziertes: zwei Boolesche Werte und eine Zeichenfolge (obwohl ich in Zukunft möglicherweise komplexere Einstellungen speichern möchte)
Ich habe gconf, dconf, gsettings usw. alle erwähnt gehört. Was ist die "bevorzugte" Methode? Am liebsten eines, das in Python nett und einfach ist.
Antworten:
gconf
ist veraltet, daher würde ich es für ein neues Projekt nicht verwenden.dconf
ist ein Backend zum Speichern der Einstellungen, als Anwendungsentwickler sollte man sich normalerweise nicht darum kümmern müssen.Anscheinend benötigen Sie
gsettings
eine API auf hoher Ebene ( API-Dokumentation für C ), um Einstellungen zu speichern / abzurufen, ohne sich darum zu kümmern, wie / wo sie tatsächlich gespeichert werden.gsettings
ist Teil vongio
, welches eines der Kernpakete von gnome (likeglib
undgobject
) ist. Dieser Blog-Beitrag enthält eine kurze Einführung in die Verwendung mit Python.Wenn Sie keine Abhängigkeiten haben möchten
gio
(z. B. keine GNOME-Anwendung entwickeln) und einfache Konfigurationsdateien speichern möchten, empfehlen wir Ihnen, das$HOME/.config
Verzeichnis (oder das von diesem definierte Verzeichnis$XDG_CONFIG_DIRS
) anstelle$HOME/.your_appname
der freedesktop-Spezifikation zu verwenden .quelle
Die Anwendung läuft systemweit
Der geeignete Ort zum Speichern der Einstellungen ist:
Wobei ein Unterverzeichnis optional ist.
Anwendung läuft in einem pro Benutzer - Modus
Einstellungen sollten im Benutzer HOME gespeichert werden, vorzugsweise in einem versteckten Verzeichnis:
Siehe auch die Debian-FHS .
Anwendungen, die auf X-Desktop ausgeführt werden
Anwendungen für den X-Desktop (z. B. GNOME, KDE, Unity, Xfce) sollten sich auf die XDG-Basisverzeichnisspezifikation beziehen, in der die folgenden Dateispeicherorte in lokalen Variablen definiert sind:
quelle
Quickly , einer der neueren Helfer für die Anwendungsentwicklung unter Ubuntu , speichert standardmäßig alle Einstellungen mit desktopcouch . Der Vorteil ist, dass diese Einstellungen über die Ubuntu One-Tools mit anderen Installationen synchronisiert werden können.
quelle