Vala + GTK + 3 in granit (vrednosti shranite v dconf)

Pri programiranju v Vali in GTK + smo se vsi že kdaj vprašali, kako narediti aplikacijo, napisano v Vali in GTK +, da lahko shrani stanja parametrov velikosti okna in druge? So tipični primeri, ki jih uporabljamo gsheme shraniti te vrednosti (ta dobro znana aplikacija dconf-editor), ki grafično upravlja te sheme.

Zdaj vam predstavim, kako to narediti v preprostih korakih in brez zapletov z uporabo razreda Granite.Services.Settings iz knjižnice Granite.

Kaj potrebujemo?

Najprej moramo imeti nameščene knjižnice GTK +, Granite in Vala, da lahko sestavimo našo kodo. Za to v Ubuntu / ElementaryOS uporabimo ukaz:

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

Potrebovali bomo tudi kateri koli urejevalnik besedil, ki podpira sintakso Vala / GTK + in XML, kot je urejevalnik beležk (privzeto ElementaryOS), GEdit, sublime text + plugins itd.

Koda

Tu so primeri datotek. Za boljše razumevanje pustim kodo v PASTE s komentarji v njih:

glavna.vala
vadnica.vala
nastavitve.vala
org.tutorial.gschema.xml

Pojasnila

Datoteka sheme, če ali mora biti XML in se imenuje ORG.APLICACION.GSCHEMA.XML. To pomeni, da morata biti ORG in GSCHEMA.XML na voljo, da ga dconf prepozna kot shemo. Poleg tega je treba te diagrape kopirati na pot:

/usr/share/glib-2.0/schemas/

in jih je treba zbrati, da jih vzame DCONF, zato zaženemo ukaz:

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

Sestavljanje

Za prevajanje našega programa moramo v terminalu zagnati naslednji ukaz:

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

In zaženite binarno datoteko z ukazom:

./main

Sklepi

To je eden najboljših načinov za shranjevanje stanja naše aplikacije v GSCHEMA z uporabo GLIB. Na kakršno koli vprašanje bom z veseljem odgovoril.

Tu je posnetek zaslona mojega Ubuntuja in primer:

snap-tutorial


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Raul P. je dejal

    Dober članek, nekaj vadnic GTK v jeziku C ++ ni slabo. Stvari so se zelo spremenile, uradna stran GTK priporoča knjige iz leta 2002, pri nakupu sem se zmotil.

    DevHelp pomaga bolj kot katera koli knjiga.

    1.    Raul P. je dejal

      Žal sem mislil na C in ne na C ++. Ko odprem blokade kod, vedno izberem "Projekt v jeziku C ++", vendar programiram v jeziku C.

  2.   menace je dejal

    Dober mentor, rad bi vedel in vem, da ni tako, ampak v resnici sem si zadil dovolj udarcev z glavo, da lahko izvedem ta pristop, ozadje in zaslon za prijavo moram prilagoditi institucionalnemu podoba tega, kje delam v skupinah uporabnikov, imajo venezuelski distro, imenovan Canaima, ki temelji na Debianu 7 Wheezy, uporabniki se overjajo prek LDAP in več uporabnikov lahko dela na istem računalniku, zato je lahko tako, da obstaja več sej, v katerih morajo imeti ozadje, ekipe prilagodi skript, da olajšajo delo tehnikov, nato pa strežnik lutkarjev vbrizga pravilnike.

    Poskušal sem z gsettings, vendar deluje samo z uporabnikom, ki se prijavi, očitno shrani podatke v lokalno bazo podatkov na uporabnika, česar še nisem dosegel, iščem neko konfiguracijo, ki velja za celoten sistem in ne za en uporabnik.

    Omeniti velja, da se slika zaradi državnih datumov in katerega koli drugega razloga nenehno spreminja, zato ne gre samo za sliko, jo lutkovni mojster naloži vsaki stranki.

    Nimam pojma, ali je kaj takega mogoče uporabiti v mojem primeru.
    Lep pozdrav.