Vala + GTK + 3 ja graniitti (arvojen tallentaminen dconfiin)

Ohjelmoimalla Valassa ja GTK +: ssa olemme kaikki miettineet, miten Valaan ja GTK +: een kirjoitettu sovellus voi tallentaa ikkunakoon parametrien tilat ja muut? Ne ovat näitä tyypillisiä tapauksia, joita käytämme gschemas tallentaa nämä arvot (tämä tunnettu sovellus dconf-editor), joka hallitsee graafisesti näitä järjestelmiä.

Nyt näytän sinulle, miten tämä tehdään yksinkertaisilla vaiheilla ja ilman komplikaatioita käyttämällä Graniitti-kirjastosta-luokkaa.

Mitä me tarvitsemme?

Ensin meidän on asennettava GTK +, Granite ja Vala -kirjastot koodin kokoamiseksi. Tätä varten Ubuntu / ElementaryOS: ssa käytämme komentoa:

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

Tarvitsemme myös minkä tahansa tekstieditorin, joka tukee Vala / GTK + -syntaksia ja XML: ää, kuten Scratch Text Editor (ElementaryOS-oletus), GEdit, Sublime Text + Plugins jne.

Koodi

Tässä ovat esimerkkitiedostot. Paremman ymmärtämisen vuoksi jätän koodin PASTE-kommentteihin:

pää.vala
opetusohjelma.vala
asetukset. vala
org.tutorial.gschema.xml

Selitykset

Schema-tiedosto, jos tai jos sen on oltava XML, ja sen on oltava nimeltään ORG.APLICACION.GSCHEMA.XML. Toisin sanoen sekä ORG: n että GSCHEMA.XML: n on oltava paikalla, jotta dconf tunnistaa sen skeemana. Lisäksi nämä kaaviot on kopioitava reitille:

/usr/share/glib-2.0/schemas/

ja ne on koottava, jotta DCONF voi ottaa heidät, tämän vuoksi suoritamme komennon:

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

Koostaminen

Ohjelmamme kokoamiseksi meidän on käynnistettävä seuraava komento terminaalissa:

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

Suorita binääri komennolla:

./main

Päätelmät

Se on yksi parhaista tavoista tallentaa sovelluksemme tila GSCHEMA: ssa GLIB: n avulla. Kaikenlaisiin kysymyksiin vastaan ​​mielelläni.

Tässä on kuvakaappaus Ubuntustani ja esimerkki:

snap-opetusohjelma


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Raul P. dijo

    Hyvä artikkeli, muutamat GTK-oppaat C ++: ssa eivät ole huonoja. Asiat ovat muuttuneet paljon, virallinen GTK-sivusto suosittelee kirjoja vuodesta 2002, tein virheen ostamalla sen.

    DevHelp auttaa enemmän kuin mikään kirja.

    1.    Raul P. dijo

      Anteeksi tarkoitin C: tä, ei C ++. Kun avaan koodilohkot, valitsen aina "Projektin C ++", mutta ohjelmoin C: ssä.

  2.   uhka dijo

    Hyvä ohjaaja, haluaisin tietää ja tiedän, että näin ei ole, mutta todellisuudessa olen antanut itselleni tarpeeksi pääniskuja voidakseni toteuttaa tämän lähestymistavan, minun on mukautettava tausta ja kirjautumisnäyttö institutionaalisella kuva siitä, missä työskentelen joukkueiden käyttäjillä, heillä on Venezuelan distro nimeltä Canaima, joka perustuu Debian 7 Wheezy -ohjelmaan, käyttäjät todentavat LDAP: n kautta ja useat käyttäjät voivat työskennellä samalla tietokoneella, joten voi olla, että istuntoja on useita Joukkueiden on omistettava taustakuva, komentosarja mukauttaa joukkueet teknikoiden työn helpottamiseksi, ja sitten nukketeatteripalvelin injektoi käytännöt.

    Olen kokeillut gsettings-sovellusta, mutta se toimii vain kirjautuvan käyttäjän kanssa, ilmeisesti se tallentaa tiedot paikalliseen tietokantaan käyttäjää kohti, jota en ole vielä saavuttanut. Etsin joitain kokoonpanoja, jotka koskevat koko järjestelmää eikä yksi käyttäjä.

    On syytä mainita, että kuva muuttuu jatkuvasti kansallisten päivämäärien ja muiden syiden takia, joten se ei ole vain kuva, vaan nukenjohtaja lähettää ne jokaiselle asiakkaalle.

    Minulla ei ole aavistustakaan, voidaanko jotain tällaista soveltaa tapaukseeni.
    Tervehdys.