Programmeren in Vala en GTK +, we hebben ons allemaal wel eens afgevraagd hoe we een applicatie geschreven in Vala en GTK + in staat kunnen stellen om de status van de parameters van de venstergrootte en andere op te slaan? Het zijn van deze typische gevallen die we gebruiken gschema's om deze waarden op te slaan (deze bekende applicatie dconf-editor) die deze schema's grafisch beheert.
Nu laat ik u zien hoe u dit in eenvoudige stappen en zonder complicaties kunt doen met de klasse Granite.Services.Settings uit de Granite-bibliotheek.
Wat hebben we nodig?
Eerst hebben we de GTK +, Granite en Vala bibliotheken nodig om onze code te compileren. Om dit te doen in Ubuntu / ElementaryOS gebruiken we het commando:
sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac
En we hebben ook elke teksteditor nodig die Vala / GTK + syntaxis en XML ondersteunt, zoals Scratch Text Editor (ElementaryOS standaard), GEdit, Sublime Text + Plugins, etc.
De code
Hier zijn de voorbeeldbestanden. Voor een beter begrip laat ik de code in PASTE staan met opmerkingen erin:
Toelichtingen
Het schemabestand, of het XML moet zijn en ORG.APLICACION.GSCHEMA.XML moet heten. Dat wil zeggen, zowel de ORG als GSCHEMA.XML moeten aanwezig zijn om dconf te laten herkennen als een schema. Bovendien moeten deze diagrammen naar de route worden gekopieerd:
/usr/share/glib-2.0/schemas/
en ze moeten worden gecompileerd zodat DCONF ze kan gebruiken, hiervoor voeren we het commando uit:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Compileren
Om ons programma te compileren, moeten we de volgende opdracht starten in een terminal:
valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala
En voer het binaire bestand uit met het commando:
./main
Conclusies
Het is een van de beste methoden om de staat van onze APP op te slaan in GSCHEMA met GLIB. Elke vraag die ik graag beantwoord.
Hier is een screenshot van mijn Ubuntu en het voorbeeld:
Goed artikel, een paar GTK-tutorials in C ++ zijn niet slecht. De dingen zijn veel veranderd, de officiële GTK-site beveelt boeken uit 2002 aan, ik maakte de fout om het te kopen.
DevHelp helpt meer dan welk boek dan ook.
Sorry, ik bedoelde C, niet C ++. Als ik de codeblokken open, kies ik altijd "A project in C ++", maar ik programmeer in C.
Goede tutor, ik zou het graag willen weten en ik weet dat dit niet het geval is, maar in werkelijkheid heb ik mezelf genoeg koppen gegeven om deze aanpak te kunnen uitvoeren, ik moet de achtergrond en het inlogscherm aanpassen met een institutioneel beeld van waar ik werk in de teams van de gebruikers hebben ze een Venezolaanse distro genaamd Canaima, gebaseerd op Debian 7 Wheezy, gebruikers authenticeren via LDAP en meerdere gebruikers kunnen op dezelfde pc werken, dus het kan zijn dat er meerdere sessies zijn waarin ze moeten Als eigenaar van het behang worden de teams aangepast door het script om het werk van de technici te vergemakkelijken en vervolgens wordt het beleid geïnjecteerd door de puppetmaster-server.
Ik heb het geprobeerd met gsettings maar het werkt alleen met de gebruiker die inlogt, blijkbaar slaat het de informatie op in een lokale database per gebruiker die ik nog niet heb bereikt, ik ben op zoek naar een configuratie die van toepassing is op het hele systeem en niet op een enkele gebruiker.
Het is vermeldenswaard dat de afbeelding voortdurend verandert vanwege nationale datums en om een andere reden, dus het is niet alleen een afbeelding, ze worden door de poppenspeler naar elke klant geüpload.
Ik heb geen idee of zoiets op mijn geval kan worden toegepast.
Groeten.