Programmando in Vala e GTK +, ci siamo mai chiesti tutti come fare un'applicazione scritta in Vala e GTK + in grado di salvare gli stati dei parametri di dimensione della finestra e altri? Sono di questi casi tipici che usiamo gschemi per salvare questi valori (questa nota applicazione dconf-editor) che gestisce graficamente questi schemi.
Ora ti mostro come farlo in semplici passaggi e senza complicazioni utilizzando la classe Granite.Services.Settings dalla libreria Granite.
Di cosa abbiamo bisogno?
Per prima cosa dobbiamo avere le librerie GTK +, Granite e Vala installate per compilare il nostro codice. Per farlo in Ubuntu / ElementaryOS usiamo il comando:
sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac
E avremo anche bisogno di qualsiasi editor di testo che supporti la sintassi Vala / GTK + e XML come Scratch Text Editor (predefinito ElementaryOS), GEdit, Sublime Text + Plugins, ecc.
Il codice
Ecco i file di esempio. Per una migliore comprensione lascio il codice in PASTE con commenti al loro interno:
Spiegazioni
Il file Schema, se o se deve essere XML e deve essere denominato ORG.APLICACION.GSCHEMA.XML. Cioè, sia ORG che GSCHEMA.XML devono essere presenti affinché dconf lo riconosca come schema. Inoltre, questi diagrammi devono essere copiati nel percorso:
/usr/share/glib-2.0/schemas/
e devono essere compilati per DCONF per prenderli, per questo eseguiamo il comando:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Compilazione
Per compilare il nostro programma dobbiamo lanciare il seguente comando in un terminale:
valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala
Ed esegui il binario con il comando:
./main
Conclusioni
È uno dei metodi migliori per salvare lo stato della nostra APP in GSCHEMA utilizzando GLIB. Qualsiasi tipo di domanda sarò felice di rispondere.
Ecco uno screenshot del mio Ubuntu e l'esempio:
Buon articolo, alcuni tutorial GTK in C ++ non sono male. Le cose sono cambiate molto, il sito ufficiale GTK consiglia i libri del 2002, ho fatto l'errore di comprarli.
DevHelp aiuta più di qualsiasi libro.
Scusa, volevo dire C, non C ++. Quando apro i blocchi di codice, scelgo sempre "Un progetto in C ++", ma programma in C.
Bravo tutor, vorrei sapere e so che non è così, ma in verità mi sono dato abbastanza colpi di testa per poter portare avanti questo approccio, ho bisogno di personalizzare lo sfondo e la schermata di login con un istituzionale immagine di dove lavoro nei team degli utenti, hanno una distribuzione venezuelana chiamata Canaima, basata su Debian 7 Wheezy, gli utenti si autenticano tramite LDAP e diversi utenti possono lavorare sullo stesso PC, quindi può essere il caso che ce ne siano diversi sessioni in cui devono possedere lo sfondo, le squadre vengono personalizzate dallo script per facilitare il lavoro dei tecnici e quindi le politiche vengono iniettate dal server del burattinaio.
Ho provato con gsettings ma funziona solo con l'utente che sta effettuando l'accesso, a quanto pare salva le informazioni in un database locale per utente che non ho ancora raggiunto, sto cercando una configurazione che si applichi all'intero sistema e non a un singolo utente.
Vale la pena ricordare che l'immagine cambia costantemente a causa delle date nazionali e di qualsiasi altro motivo, quindi non è solo un'immagine, vengono caricate dal burattinaio su ogni cliente.
Non ho idea se qualcosa di simile possa essere applicato al mio caso.
Saluti.