Jika saya ingin aplikasi saya menyimpan beberapa pengaturan, yang bertahan ketika aplikasi ditutup, lalu di mana saya harus menyimpannya?
Saya tidak berbicara sesuatu yang rumit: dua boolean dan string (meskipun di masa depan saya mungkin ingin menyimpan pengaturan yang lebih kompleks)
Saya pernah mendengar gconf, dconf, gsettings, dll semua disebutkan. Apa metode "disukai"? Lebih disukai yang bagus dan mudah dengan Python.
Jawaban:
gconf
sudah usang, jadi untuk proyek baru saya tidak akan menggunakannya.dconf
adalah backend untuk menyimpan pengaturan, sebagai pengembang aplikasi Anda biasanya tidak perlu repot dengan itu.Apa yang tampaknya Anda butuhkan adalah
gsettings
, API tingkat tinggi ( dokumentasi API untuk C ) untuk menyimpan / mengambil pengaturan tanpa mengganggu bagaimana / di mana mereka sebenarnya disimpan.gsettings
adalah bagian darigio
, yang merupakan salah satu paket inti dari gnome (sepertiglib
dangobject
). Posting blog ini memberikan pengantar singkat bagaimana menggunakannya dengan Python.Jika Anda tidak menginginkan dependensi
gio
(mis. Anda tidak mengembangkan aplikasi GNOME) dan ingin menyimpan file konfigurasi sederhana, saya sarankan untuk menggunakan$HOME/.config
direktori (atau direktori apa pun yang ditentukan oleh$XDG_CONFIG_DIRS
) alih-alih$HOME/.your_appname
, sesuai dengan spesifikasi freedesktop .sumber
Aplikasi menjalankan sistem secara luas
tempat yang tepat untuk menyimpan pengaturan adalah:
di mana subdirektori adalah opsional.
Aplikasi berjalan dalam mode per pengguna
pengaturan harus disimpan di HOME pengguna, lebih disukai di direktori tersembunyi:
Lihat juga Debian FHS .
Aplikasi berjalan di X-Desktop
Aplikasi untuk X-Desktop (mis. GNOME, KDE, Unity, Xfce) harus merujuk pada Spesifikasi Direktori Pangkalan XDG di mana lokasi file berikut didefinisikan dalam variabel lokal:
sumber
Cepat , yang merupakan salah satu pembantu baru untuk pengembangan aplikasi untuk Ubuntu , default untuk menyimpan semua preferensi dengan desktopcouch . Keuntungannya adalah pengaturan tersebut dapat disinkronkan dengan instalasi lain melalui alat Ubuntu One.
sumber