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

Memprogram di Vala dan GTK +, kita semua pernah terfikir bagaimana membuat aplikasi yang ditulis di Vala dan GTK + dapat menyimpan keadaan parameter ukuran tetingkap dan lain-lain? Ini adalah kes biasa yang kami gunakan gschemas untuk menyimpan nilai-nilai ini (aplikasi dconf-editor terkenal ini) yang menguruskan skema ini secara grafik.

Sekarang saya menunjukkan kepada anda bagaimana melakukan ini dengan langkah mudah dan tanpa komplikasi menggunakan kelas Granite.Services.Settings dari perpustakaan Granite.

Apa yang kita perlukan?

Pertama, kita perlu memasang perpustakaan GTK +, Granite dan Vala untuk menyusun kod kita. Untuk melakukan ini di Ubuntu / ElementaryOS kami menggunakan arahan:

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

Dan kami juga memerlukan mana-mana editor teks yang menyokong sintaks Vala / GTK + dan XML seperti Scratch Text Editor (default ElementaryOS), GEdit, Sublime Text + Plugins, dll.

Kodnya

Berikut adalah contoh fail. Untuk pemahaman yang lebih baik, saya meninggalkan kod dalam PASTE dengan komen di dalamnya:

utama.vala
tutorial.vala
tetapan.vala
org.tutorial.gschema.xml

Penjelasan

Fail Skema, jika atau jika mestilah XML dan disebut ORG.APLICACION.GSCHEMA.XML. Maksudnya, kedua ORG dan GSCHEMA.XML mesti ada untuk dconf mengenalinya sebagai skema. Di samping itu, gambar rajah ini mesti disalin ke laluan:

/usr/share/glib-2.0/schemas/

dan mereka perlu disusun agar DCONF mengambilnya, kerana ini kita melaksanakan perintah:

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

Menyusun

Untuk menyusun program kami, kami harus melancarkan perintah berikut di terminal:

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

Dan jalankan perduaan dengan arahan:

./main

Kesimpulan

Ini adalah salah satu kaedah terbaik untuk menyelamatkan keadaan APP kami di GSCHEMA menggunakan GLIB. Apa-apa jenis soalan saya akan senang menjawab.

Berikut adalah tangkapan skrin Ubuntu saya dan Contohnya:

snap-TUtorial


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Raul P. kata

    Artikel yang bagus, beberapa tutorial GTK di C ++ bagus. Perkara telah banyak berubah, laman GTK rasmi mengesyorkan buku dari tahun 2002, saya membuat kesilapan membelinya.

    DevHelp membantu lebih banyak daripada buku apa pun.

    1.    Raul P. kata

      Maaf saya bermaksud C, bukan C ++. Semasa saya membuka blok kod, saya selalu memilih "Projek di C ++", tetapi saya memprogram di C.

  2.   ancaman kata

    Tuto yang bagus, saya ingin tahu dan saya tahu bahawa ini bukan masalahnya, tetapi sebenarnya saya telah memberikan diri saya cukup kepala untuk dapat melaksanakan pendekatan ini, saya perlu menyesuaikan latar belakang dan skrin masuk dengan institusi gambar tempat saya bekerja dalam pasukan pengguna, mereka mempunyai distro Venezuela bernama Canaima, berdasarkan Debian 7 Wheezy, pengguna mengesahkan melalui LDAP dan beberapa pengguna boleh bekerja di PC yang sama, jadi mungkin terdapat beberapa sesi di mana mereka mesti memiliki kertas dinding, pasukan disesuaikan dengan skrip untuk memudahkan kerja juruteknik dan kemudian polisi disuntik oleh pelayan puppetmaster.

    Saya telah mencuba dengan gsettings tetapi hanya berfungsi dengan pengguna yang log masuk, nampaknya ia menyimpan maklumat dalam pangkalan data tempatan setiap pengguna yang belum saya capai, saya mencari beberapa konfigurasi yang berlaku untuk seluruh sistem dan tidak untuk pengguna tunggal.

    Perlu disebutkan bahawa gambar sentiasa berubah kerana tarikh kebangsaan dan alasan lain, jadi bukan hanya gambar, tetapi gambar tersebut dimuat naik oleh dalang kepada setiap pelanggan.

    Saya tidak tahu sama ada perkara seperti ini dapat digunakan untuk kes saya.
    Greetings.