Vala + GTK + 3 dan Granit (simpan nilai di dconf)

Pemrograman di Vala dan GTK +, kita semua pernah bertanya-tanya bagaimana membuat aplikasi yang ditulis dalam Vala dan GTK + dapat menyimpan status parameter ukuran jendela dan lainnya? Mereka adalah kasus tipikal yang kami gunakan gschemas.dll untuk menyimpan nilai-nilai ini (aplikasi dconf-editor terkenal ini) yang secara grafis mengelola skema ini.

Sekarang saya menunjukkan kepada Anda bagaimana melakukan ini dalam langkah-langkah sederhana dan tanpa komplikasi menggunakan kelas Granite.Services.Settings dari perpustakaan Granite.

Apa yang kita butuhkan?

Pertama kita perlu menginstal perpustakaan GTK +, Granite dan Vala untuk mengkompilasi kode kita. Untuk melakukan ini di Ubuntu / ElementaryOS kami menggunakan perintah:

sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac

Dan kami juga memerlukan editor teks apa pun yang mendukung sintaks Vala / GTK + dan XML seperti Editor Teks Awal (bawaan OS Elementary), GEdit, Sublime Text + Plugin, dll.

Kode

Berikut adalah file Contoh. Untuk pemahaman yang lebih baik, saya meninggalkan kode di PASTE dengan komentar di dalamnya:

main.vala
tutorial.vala
setting.vala
org.tutorial.gschema.xml

Penjelasan

File Skema, jika atau jika harus XML dan diberi nama ORG.APLICACION.GSCHEMA.XML. Artinya, ORG dan GSCHEMA.XML harus ada di sana agar dconf mengenalinya sebagai skema. Selain itu, diagram berikut harus disalin ke rute:

/usr/share/glib-2.0/schemas/

dan mereka perlu dikompilasi agar DCONF dapat mengambilnya, untuk ini kami menjalankan perintah:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

Mengompilasi

Untuk mengkompilasi program kita, kita harus menjalankan perintah berikut di terminal:

valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala

Dan jalankan biner dengan perintah:

./main

Kesimpulan

Ini adalah salah satu metode terbaik untuk menyimpan status APP kami di GSCHEMA menggunakan GLIB. Segala jenis pertanyaan akan dengan senang hati saya jawab.

Berikut tangkapan layar dari Ubuntu saya dan Contohnya:

snap-TUtorial


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Raul P. dijo

    Artikel bagus, beberapa tutorial GTK di C ++ bagus. Banyak hal telah berubah banyak, situs resmi GTK merekomendasikan buku dari tahun 2002, saya membuat kesalahan dengan membelinya.

    DevHelp membantu lebih dari semua buku.

    1.    Raul P. dijo

      Maaf maksud saya C, bukan C ++. Ketika saya membuka blok kode, saya selalu memilih "Proyek dalam C ++", tetapi saya memprogram dalam C.

  2.   ancaman dijo

    Baik tuto, saya ingin tahu dan saya tahu bukan itu masalahnya, tetapi sebenarnya saya telah memberikan diri saya pukulan yang cukup untuk dapat melakukan pendekatan ini, saya perlu menyesuaikan latar belakang dan layar masuk dengan kelembagaan gambar tempat saya bekerja dalam tim pengguna, mereka memiliki distro Venezuela bernama Canaima, berdasarkan Debian 7 Wheezy, pengguna mengotentikasi melalui LDAP dan beberapa pengguna dapat bekerja pada PC yang sama, jadi mungkin ada beberapa kasus sesi di mana mereka harus memiliki wallpaper, tim disesuaikan dengan skrip untuk memfasilitasi pekerjaan teknisi dan kemudian kebijakan dimasukkan oleh server puppetmaster.

    Saya telah mencoba dengan gsettings tetapi hanya berfungsi dengan pengguna yang masuk, tampaknya ini menyimpan informasi dalam database lokal per pengguna yang belum saya capai, saya mencari beberapa konfigurasi yang berlaku untuk seluruh sistem dan bukan untuk satu pengguna.

    Perlu disebutkan bahwa gambar tersebut terus berubah karena tanggal nasional dan alasan lainnya, jadi ini bukan hanya gambar, tetapi juga diunggah oleh dalang ke setiap klien.

    Saya tidak tahu apakah hal seperti ini dapat diterapkan pada kasus saya.
    Salam.