Programmation en Vala et GTK +, nous nous sommes tous déjà demandé comment faire pour qu'une application écrite en Vala et GTK + puisse enregistrer les états des paramètres de taille de fenêtre et autres? Ce sont des cas typiques que nous utilisons gschémas pour enregistrer ces valeurs (cette application bien connue dconf-editor) qui gère graphiquement ces schémas.
Maintenant, je vous montre comment faire cela en étapes simples et sans complications en utilisant la classe Granite.Services.Settings de la bibliothèque Granite.
Qu'avons nous besoin?
Nous devons d'abord installer les bibliothèques GTK +, Granite et Vala pour compiler notre code. Pour ce faire dans Ubuntu / ElementaryOS, nous utilisons la commande:
sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac
Et nous aurons également besoin de tout éditeur de texte prenant en charge la syntaxe Vala / GTK + et XML comme Scratch Text Editor (ElementaryOS par défaut), GEdit, Sublime Text + Plugins, etc.
Le code
Voici les fichiers d'exemple. Pour une meilleure compréhension, je laisse le code dans PASTE avec des commentaires en eux:
Explications
Le fichier de schéma, si ou s'il doit être XML et s'appeler ORG.APLICACION.GSCHEMA.XML. Autrement dit, l'ORG et le GSCHEMA.XML doivent être là pour que dconf le reconnaisse comme un schéma. De plus, ces diagrammes doivent être copiés sur l'itinéraire:
/usr/share/glib-2.0/schemas/
et ils doivent être compilés pour que DCONF les prenne, pour cela, nous exécutons la commande:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Compiler
Pour compiler notre programme, nous devons lancer la commande suivante dans un terminal:
valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala
Et exécutez le binaire avec la commande:
./main
Conclusions
C'est l'une des meilleures méthodes pour enregistrer l'état de notre application dans GSCHEMA à l'aide de GLIB. Je serai ravi de répondre à toute sorte de question.
Voici une capture d'écran de mon Ubuntu et l'exemple:
Bon article, quelques tutoriels GTK en C ++ sont bons. Les choses ont beaucoup changé, le site officiel de GTK recommande des livres de 2002, j'ai fait l'erreur de l'acheter.
DevHelp aide plus que n'importe quel livre.
Désolé, je voulais dire C, pas C ++. Lorsque j'ouvre les blocs de code, je choisis toujours "Un projet en C ++", mais je programme en C.
Bon tuto, j'aimerais savoir et je sais que ce n'est pas le cas, mais en vérité je me suis donné assez de coups de tête pour pouvoir mener à bien cette démarche, j'ai besoin de customiser le fond et l'écran de connexion avec une image institutionnelle de l'endroit où je travaille dans les équipes du utilisateurs, ils ont une distribution vénézuélienne appelée Canaima, basée sur Debian 7 Wheezy, les utilisateurs s'authentifient via LDAP et plusieurs utilisateurs peuvent travailler sur le même PC, il se peut donc qu'il y ait plusieurs sessions dans lesquelles ils doivent possédant le fond d'écran, les équipes sont personnalisées par le script pour faciliter le travail des techniciens puis les politiques sont injectées par le serveur puppetmaster.
J'ai essayé avec gsettings mais cela ne fonctionne qu'avec l'utilisateur qui se connecte, apparemment il enregistre les informations dans une base de données locale par utilisateur que je n'ai pas encore réalisée, je recherche une configuration qui s'applique à l'ensemble du système et non à un seul utilisateur.
Il est à noter que l'image change constamment en raison des dates nationales et pour toute autre raison, il ne s'agit donc pas simplement d'une image, elles sont téléchargées par le marionnettiste vers chaque client.
Je n'ai aucune idée si quelque chose comme ça peut être appliqué à mon cas.
Salutations.