Vala + GTK + 3 kaj Granito (konservu valorojn en dconf)

Programante en Vala kaj GTK +, ni ĉiuj iam scivolis kiel fari programon skribitan en Vala kaj GTK + povos konservi la statojn de la parametroj de grandeco de fenestro kaj aliaj? Ili estas el ĉi tiuj tipaj kazoj, kiujn ni uzas gskemoj por konservi ĉi tiujn valorojn (ĉi tiu konata aplikaĵo dconf-editor), kiu grafike administras ĉi tiujn skemojn.

Nun mi montras al vi kiel fari ĉi tion per simplaj paŝoj kaj sen komplikaĵoj uzante la klason Granite.Services.Settings de la Granita biblioteko.

Kion ni bezonas?

Unue ni bezonas la bibliotekojn GTK +, Granite kaj Vala instalitajn por kompili nian kodon. Por fari tion en Ubuntu / ElementaryOS ni uzas la komandon:

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

Kaj ni ankaŭ bezonos iun ajn tekstredaktilon, kiu subtenas sintakson kaj XML de Vala / GTK + kiel Scratch Text Editor (ElementaryOS defaŭlte), GEdit, Sublime Text + Plugins, ktp.

La kodo

Jen la Ekzemplaj dosieroj. Por pli bona kompreno mi lasas la kodon en PASTE kun komentoj en ili:

ĉefa.vala
lernilo.vala
agordoj.vala
org.tutorial.gschema.xml

Klarigoj

La Schema dosiero, se aŭ se ĝi devas esti XML kaj nomi ORG.APLICACION.GSCHEMA.XML. Tio estas, kaj la ORG kaj GSCHEMA.XML devas esti tie por ke dconf rekonu ĝin kiel skemon. Krome, ĉi tiuj diagramoj devas esti kopiitaj al la itinero:

/usr/share/glib-2.0/schemas/

kaj ili devas esti kompilitaj por ke DCONF prenu ilin, por tio ni ekzekutas la komandon:

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

Kompilado

Por kompili nian programon ni devas lanĉi la jenan komandon en terminalo:

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

Kaj rulu la duumaĵon per la komando:

./main

Konkludoj

Ĝi estas unu el la plej bonaj metodoj por savi la staton de nia APP en GSCHEMA per GLIB. Ĉian ajn demandon mi volonte respondos.

Jen ekrankopio de mia Ubuntu kaj la Ekzemplo:

klako-TUtorial


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

3 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   Raul P. diris

    Bona artikolo, kelkaj GTK-lerniloj en C ++ ne malbonas. Aferoj multe ŝanĝiĝis, la oficiala GTK-ejo rekomendas librojn de 2002, mi faris la eraron aĉeti ĝin.

    DevHelp helpas pli ol iu ajn libro.

    1.    Raul P. diris

      Pardonu, ke mi celis C, ne C ++. Kiam mi malfermas la kodblokojn, mi ĉiam elektas "Projekton en C ++", sed mi programas en C.

  2.   minaco diris

    Bona tuto, mi ŝatus scii kaj mi scias, ke ĝi ne estas la kazo, sed verdire mi donis al mi sufiĉe da kapbatoj por povi plenumi ĉi tiun aliron, mi bezonas agordi la fonon kaj la ensalutan ekranon kun institucia bildo de kie mi laboras en la teamoj de la uzantoj, ili havas venezuelan distribuon nomatan Canaima, bazitan sur Debian 7 Wheezy, uzantoj aŭtentikigas per LDAP kaj pluraj uzantoj povas labori sur la sama komputilo, do povas esti, ke ekzistas pluraj kunsidoj, en kiuj ili devas posedi la fonon, la teamoj estas adaptitaj per la skripto por faciligi la laboron de la teknikistoj kaj tiam la politikoj estas injektitaj de la marionetista servilo.

    Mi provis kun gsettings sed ĝi funkcias nur kun la uzanto, kiu ensalutas, ŝajne ĝi konservas la informojn en loka datumbazo por uzanto, kiun mi ankoraŭ ne atingis, mi serĉas iun agordon, kiu validas por la tuta sistemo kaj ne por unu sola uzanto.

    Menciindas, ke la bildo konstante ŝanĝiĝas pro naciaj datoj kaj iu ajn alia kialo, do ĝi ne estas nur bildo, ili estas alŝutitaj de la pupisto ĉe ĉiu kliento.

    Mi tute ne scias, ĉu io tia povas esti aplikita al mia kazo.
    Salutojn.