Vala + GTK + 3 dhe Granit (ruani vlerat në dconf)

Programimi në Vala dhe GTK +, të gjithë ne kemi menduar ndonjëherë se si ta bëjmë një aplikacion të shkruar në Vala dhe GTK + të jetë në gjendje të ruajë gjendjet e parametrave të madhësisë së dritares dhe të tjerët? Ato janë nga këto raste tipike që ne përdorim gschemas për të ruajtur këto vlera (ky aplikacion i mirënjohur dconf-editor) që administron grafikisht këto skema.

Tani ju tregoj se si ta bëni këtë në hapa të thjeshtë dhe pa ndërlikime duke përdorur klasën Granit.Shërbime. Cilësime nga biblioteka Granite.

Çfarë na duhet?

Së pari duhet të kemi të instaluar bibliotekat GTK +, Granite dhe Vala në mënyrë që të përpilojmë kodin tonë. Për ta bërë këtë në Ubuntu / ElementaryOS ne përdorim komandën:

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

Dhe do të na duhet gjithashtu çdo redaktues teksti që mbështet Vala / GTK + dhe sintaksën XML si Scratch Text Editor (ElementaryOS default), GEdit, Sublime Text + Plugins, etj.

Kodi

Këtu janë skedarët Shembull. Për kuptim më të mirë, unë e lë kodin në PASTE me komente në to:

kryesore.vala
tutorial.vala
cilësimet.vala
org.utorial.gschema.xml

Shpjegime

Skedari Schema, nëse ose nëse duhet të jetë XML dhe të quhet ORG.APLICACION.GSCHEMA.XML. Kjo është, të dy ORG dhe GSCHEMA.XML duhet të jenë aty që dconf ta njohë atë si skemë. Për më tepër, këto diagrame duhet të kopjohen në itinerar:

/usr/share/glib-2.0/schemas/

dhe ato duhet të përpilohen që DCONF t'i marrë, për këtë ne ekzekutojmë komandën:

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

Hartimi

Për të përpiluar programin tonë duhet të lëshojmë komandën vijuese në një terminal:

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

Dhe ekzekutoni binarin me komandën:

./main

Konkluzione

Shtë një nga metodat më të mira për të ruajtur gjendjen e APP-së tonë në GSCHEMA duke përdorur GLIB. Çdo lloj pyetjeje do të jem i lumtur t'i përgjigjem.

Këtu është një pamje e ekranit të Ubuntu tim dhe Shembulli:

snap-tutorial


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Raul P. dijo

    Artikull i mirë, disa mësime GTK në C ++ janë të mira. Gjërat kanë ndryshuar shumë, faqja zyrtare e GTK rekomandon libra nga 2002, unë bëra gabim kur e bleva.

    DevHelp ndihmon më shumë se çdo libër.

    1.    Raul P. dijo

      Më vjen keq që doja të thoja C, jo C ++. Kur hap bllokimet e kodeve, zgjedh gjithmonë "Një projekt në C ++", por programoj në C.

  2.   kërcënim dijo

    Mirë tuto, unë do të doja ta dija dhe e di që nuk është kështu, por në të vërtetë unë i kam dhënë vetes mjaft goditje koke për të qenë në gjendje të kryej këtë qasje, unë duhet të rregulloj sfondin dhe ekranin e hyrjes me një institucion imazhi i vendit ku unë punoj në ekipet e përdoruesve, ata kanë një distro venezueliane të quajtur Canaima, bazuar në Debian 7 Wheezy, përdoruesit vërtetojnë përmes LDAP dhe disa përdorues mund të punojnë në të njëjtin PC, kështu që mund të ndodhë që të ketë disa seancat në të cilat ata duhet të zotërojnë sfondin, skuadrat janë përshtatur nga skenari për të lehtësuar punën e teknikëve dhe më pas politikat injektohen nga serveri i puppetmaster.

    Unë kam provuar me gsettings por funksionon vetëm me përdoruesin i cili po identifikohet, me sa duket ruan informacionin në një bazë të të dhënave lokale për përdorues të cilin nuk e kam arritur akoma, po kërkoj disa konfigurime që vlejnë për të gjithë sistemin dhe jo për të një përdorues i vetëm.

    Vlen të përmendet se imazhi po ndryshon vazhdimisht për shkak të datave kombëtare dhe ndonjë arsye tjetër, kështu që nuk është thjesht një imazh, ato ngarkohen nga kukulla për secilin klient.

    Nuk kam ide nëse diçka e tillë mund të zbatohet në çështjen time.
    Përshëndetje.