„Vala + GTK + 3“ ir „Granite“ (išsaugokite reikšmes „dconf“)

Programuodami Vala ir GTK+, visi kažkada savęs paklausime: kaip padaryti, kad Vala ir GTK+ parašyta programa galėtų išsaugoti lango dydžio parametrų būsenas ir pan.? Jie yra vienas iš šių tipiškų atvejų, kuriuos naudojame gschemos Norėdami išsaugoti šias reikšmes (ši gerai žinoma programa dconf-editor), kuri grafiškai valdo šias schemas.

Dabar parodysiu, kaip tai padaryti paprastais žingsniais ir be komplikacijų naudojant Granite.Services.Settings klasę iš Granite bibliotekos.

Ko mums reikia?

Pirmiausia turime turėti GTK+, Granite ir Vala bibliotekas, kad galėtume kompiliuoti savo kodą. Norėdami tai padaryti Ubuntu / ElementaryOS, naudojame komandą:

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

Taip pat mums reikės bet kokio teksto rengyklės, palaikančios Vala/GTK+ ir XML sintaksę, pvz., „Scratch Text Editor“ (numatytoji „ElementaryOS“), „GEdit“, „Sublime Text + Plugins“ ir kt.

Kodas

Žemiau yra pavyzdiniai failai. Kad geriau suprasčiau, palieku kodą PASTE su komentarais:

pagrindinis.vala
pamoka.vala
nustatymai.vala
org.tutorial.gschema.xml

Paaiškinimai

Schemos failas, jei arba jei, turi būti XML ir vadintis ORG.APPLICATION.GSCHEMA.XML. Tai reiškia, kad ir ORG, ir GSCHEMA.XML turi būti ten, kad dconf atpažintų ją kaip schemą. Be to, šios diagramos turi būti nukopijuotos į maršrutą:

/usr/share/glib-2.0/schemas/

ir juos reikia sukompiliuoti, kad DCONF juos priimtų, tam mes vykdome komandą:

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

Kompiliavimas

Norėdami sudaryti programą, terminale turime paleisti šią komandą:

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

Ir paleiskite dvejetainį failą su komanda:

./main

Išvados

Tai vienas geriausių būdų išsaugoti mūsų APP būseną GSCHEMA naudojant GLIB. Į bet kokį klausimą mielai atsakysiu.

Čia palieku jums savo Ubuntu ir pavyzdžio ekrano kopiją:

snap-MOCIJA


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Raulas P sakė

    Geras straipsnis, kai kurios GTK pamokos C++ nekenkia. Viskas labai pasikeitė, oficiali GTK svetainė rekomenduoja 2002 m. knygas, aš padariau klaidą pirkdamas.

    DevHelp padeda labiau nei bet kuri knyga.

    1.    Raulas P sakė

      Atsiprašau, turėjau omenyje C, o ne C++. Kai atidarau kodų blokus, visada renkuosi „Projektas C++“, bet programuoju C.

  2.   grėsmė sakė

    Gera pamoka, norėčiau sužinoti ir žinau, kad tai nėra aktualu, bet tiesą sakant, aš turėjau daug galvos smūgių, kad galėčiau įgyvendinti šį metodą, turiu suasmeninti foną ir prisijungimo ekraną su institucijos vaizdu. ten, kur aš dirbu vartotojų komandose, jie turi Venesuelos platinimą Canaima, paremtą Debian 7 Wheezy, vartotojai autentifikuojasi per LDAP ir keli vartotojai gali dirbti tame pačiame kompiuteryje, todėl gali būti, kad yra keletas seansų. kurioje turite turėti ekrano užsklandą, kompiuteriai yra pritaikyti pagal scenarijų, kad palengvintų technikų darbą, o tada politiką įveda puppetmaster serveris.

    Bandziau su gsettings bet veikia tik su prisijungusiu vartotoju, matyt issaugo informacija vietineje duomenu baze kiekvienam vartotojui ko dar nepasiekiau, ieškau konfigūracijos kuri tinka visai sistemai, o ne vienas vartotojas.

    Verta paminėti, kad vaizdas nuolat keičiasi dėl nacionalinių datų ir bet kokių kitų priežasčių, todėl tai nėra tik vaizdas, juos kiekvienam klientui įkelia lėlių meistras.

    Neįsivaizduoju, ar ką nors panašaus galima pritaikyti mano atveju.
    Sveikinimai.