Vala + GTK + 3 un granīts (saglabāt vērtības dconf)

Programmējot Vala un GTK +, mēs visi kādreiz esam domājuši, kā panākt, lai Vala un GTK + rakstīta lietojumprogramma spētu saglabāt loga lieluma parametru stāvokļus un citus? Tie ir šie tipiskie gadījumi, kurus mēs izmantojam gschemas lai saglabātu šīs vērtības (šo plaši pazīstamo lietojumprogrammu dconf-editor), kas grafiski pārvalda šīs shēmas.

Tagad es jums parādīšu, kā to izdarīt vienkāršās darbībās un bez sarežģījumiem, izmantojot Granītu. Pakalpojumi. Iestatījumu klase no bibliotēkas Granīts.

Kas mums vajadzīgs?

Vispirms mums ir jāinstalē bibliotēkas GTK +, Granite un Vala, lai apkopotu kodu. Lai to izdarītu Ubuntu / ElementaryOS, mēs izmantojam komandu:

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

Mums būs nepieciešams arī jebkurš teksta redaktors, kas atbalsta Vala / GTK + un XML sintaksi, piemēram, Scratch Text Editor (ElementaryOS noklusējums), GEdit, Sublime Text + Plugins utt.

Kods

Šeit ir failu piemēri. Lai labāk izprastu, es kodu atstāju PASTE ar komentāriem:

galvenais.vala
pamācība.vala
iestatījumi.vala
org.tutorial.gschema.xml

Paskaidrojumi

Shēmas failam, ja tas ir vai nav, jābūt XML un tā nosaukums ir ORG.APLICACION.GSCHEMA.XML. Tas nozīmē, ka gan ORG, gan GSCHEMA.XML ir jābūt, lai dconf to atpazītu kā shēmu. Turklāt šīs diagrammas ir jākopē maršrutā:

/usr/share/glib-2.0/schemas/

un tie ir jāapkopo, lai DCONF tos paņemtu, tāpēc mēs izpildām komandu:

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

Sastādīšana

Lai apkopotu mūsu programmu, terminālā ir jāuzsāk šāda komanda:

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

Un palaidiet bināro komandu:

./main

Secinājumi

Tā ir viena no labākajām metodēm, lai saglabātu mūsu APP stāvokli GSCHEMA, izmantojot GLIB. Uz jebkura veida jautājumiem, uz kuriem es labprāt atbildēšu.

Šeit ir mana Ubuntu ekrānuzņēmums un piemērs:

snap-PAMĀCĪBA


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

3 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta.

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Rauls P teica

    Labs raksts, dažas GTK apmācības C ++ versijā ir labas. Lietas ir ļoti mainījušās, oficiālajā GTK vietnē tiek rekomendētas grāmatas no 2002. gada, es kļūdījos, pērkot tās.

    DevHelp palīdz vairāk nekā jebkura grāmata.

    1.    Rauls P teica

      Atvainojiet, es domāju C, nevis C ++. Atverot kodblokus, es vienmēr izvēlos "A project in C ++", bet es programmēju C.

  2.   biedēt teica

    Labs tuto, es gribētu zināt, un es zinu, ka tas tā nav, bet patiesībā es esmu devis sev pietiekami daudz sitienu ar galvu, lai varētu īstenot šo pieeju, man jāpielāgo fons un pieteikšanās ekrāns ar institucionālu attēls, kur es strādāju lietotāju komandās, viņiem ir Venecuēlas izplatītājs ar nosaukumu Canaima, kura pamatā ir Debian 7 Wheezy, lietotāji autentificējas, izmantojot LDAP, un vienā un tajā pašā datorā var strādāt vairāki lietotāji, tāpēc var gadīties, ka ir vairāki sesijas, kurās viņiem ir fona tapetes, komandas skripts pielāgo, lai atvieglotu tehniķu darbu, un pēc tam politikas injicē leļļu pārziņa serveris.

    Esmu mēģinājis ar gsettings, bet tas darbojas tikai ar lietotāju, kurš ir pieteicies, acīmredzot tas saglabā informāciju par lietotāju lokālajā datu bāzē, kuru vēl neesmu sasniedzis. Es meklēju kādu konfigurāciju, kas attiecas uz visu sistēmu, nevis viens lietotājs.

    Ir vērts pieminēt, ka attēls pastāvīgi mainās valsts datumu un citu iemeslu dēļ, tāpēc tas nav tikai attēls, bet leļļu meistars tos augšupielādē katram klientam.

    Man nav ne jausmas, vai kaut ko tādu var attiecināt uz manu lietu.
    Sveicieni.