Vala + GTK + 3 i granit (vrijednosti sačuvajte u dconf)

Programirajući u Vali i GTK +, svi smo se ikad zapitali kako da aplikacija napisana na Vali i GTK + može sačuvati stanja parametara veličine prozora i druge? Oni su od ovih tipičnih slučajeva koje mi koristimo gsheme za spremanje ovih vrijednosti (ova dobro poznata aplikacija dconf-editor) koja grafički upravlja ovim shemama.

Sada ću vam pokazati kako to učiniti jednostavnim koracima i bez komplikacija pomoću klase Granite.Services.Settings iz biblioteke Granite.

Šta trebamo?

Prvo moramo instalirati biblioteke GTK +, Granite i Vala kako bismo kompajlirali naš kod. Da bismo to učinili u Ubuntu / ElementaryOS koristimo naredbu:

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

Također će nam trebati bilo koji uređivač teksta koji podržava Vala / GTK + sintaksu i XML, poput Scratch Text Editor (osnovni Elementar OS), GEdit, Sublime Text + Plugins, itd.

Kod

Evo primjera datoteka. Za bolje razumijevanje ostavljam kod u PASTE s komentarima u njima:

main.vala
tutorial.vala
settings.vala
org.tutorial.gschema.xml

Objašnjenja

Datoteka sheme, ako ili mora biti XML i mora se zvati ORG.APLICACION.GSCHEMA.XML. Odnosno, i ORG i GSCHEMA.XML moraju biti tu da bi ih dconf prepoznao kao shemu. Pored toga, ovi dijagrami se moraju kopirati na rutu:

/usr/share/glib-2.0/schemas/

i treba ih kompajlirati da ih DCONF preuzme, za to izvršavamo naredbu:

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

Kompajliranje

Da bismo kompajlirali naš program, u terminalu moramo pokrenuti sljedeću naredbu:

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

I pokrenite binarnu naredbu:

./main

ZAKLJUČCI

To je jedan od najboljih načina za spašavanje stanja našeg APP-a u GSCHEMA pomoću GLIB-a. Rado ću odgovoriti na bilo koju vrstu pitanja.

Evo ekrana mog Ubuntu-a i primjer:

snap-TUtorial


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Raul P. rekao je

    Dobar članak, nekoliko tutorijala za GTK na C ++-u nije loše. Stvari su se puno promijenile, službena stranica GTK-a preporučuje knjige iz 2002, pogriješio sam što sam ih kupio.

    DevHelp pomaže više od bilo koje knjige.

    1.    Raul P. rekao je

      Žao mi je što sam mislio na C, a ne na C ++. Kad otvorim blokove koda, uvijek odaberem "Projekt na C ++", ali programiram na C.

  2.   pretnja rekao je

    Dobro tuto, volio bih znati i znam da nije tako, ali u stvari zadao sam si dovoljno udaraca glavom da bih mogao provesti ovaj pristup, trebam prilagoditi pozadinu i zaslon za prijavu institucionalnom slika o tome gdje radim u timovima korisnika, oni imaju venecuelanski distrikt nazvan Canaima, zasnovan na Debianu 7 Wheezy, korisnici se autentificiraju putem LDAP-a, a nekoliko korisnika može raditi na istom računaru, pa može biti tako da postoji nekoliko u sesijama u kojima moraju posjedovati pozadinu, timovi se prilagođavaju skriptom kako bi se olakšao rad tehničara, a zatim politike ubrizgava lutkarmaster server.

    Pokušao sam s gsettings-om, ali to funkcionira samo s korisnikom koji se prijavljuje, očigledno sprema informacije u lokalnu bazu podataka po korisniku što još nisam postigao, tražim neku konfiguraciju koja se odnosi na čitav sistem, a ne na jedan korisnik.

    Vrijedno je spomenuti da se slika neprestano mijenja zbog nacionalnih datuma i bilo kojeg drugog razloga, tako da to nije samo slika, već ih lutkar prenosi svakom klijentu.

    Nemam pojma da li se tako nešto može primijeniti na moj slučaj.
    Pozdrav.