Vala + GTK + 3 a Granite (ukládání hodnot do dconf)

Při programování ve Vale a GTK + jsme se všichni někdy zajímali, jak zajistit, aby aplikace napsaná ve Vala a GTK + dokázala ukládat stavy parametrů velikosti okna a dalších? Jsou to tyto typické případy, které používáme gschémata uložit tyto hodnoty (tato známá aplikace dconf-editor), která graficky spravuje tato schémata.

Nyní vám ukážu, jak to udělat v jednoduchých krocích a bez komplikací pomocí třídy Granite.Services.Settings z knihovny Granite.

Co potřebujeme?

Nejprve musíme mít nainstalované knihovny GTK +, Granite a Vala, abychom mohli zkompilovat náš kód. K tomu v Ubuntu / ElementaryOS používáme příkaz:

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

A budeme také potřebovat jakýkoli textový editor, který podporuje syntaxi Vala / GTK + a XML, jako je Scratch Text Editor (výchozí ElementaryOS), GEdit, Sublime Text + Plugins atd.

Kód

Zde jsou ukázkové soubory. Pro lepší pochopení nechávám kód v PASTE s komentáři:

hlavní.vala
tutoriál.vala
nastavení.vala
org.tutorial.gschema.xml

Vysvětlení

Soubor schématu, pokud nebo pokud musí být XML a musí být volán ORG.APLICACION.GSCHEMA.XML. To znamená, že ORG i GSCHEMA.XML musí existovat, aby jej dconf rozpoznal jako schéma. Kromě toho musí být tyto diagramy zkopírovány do trasy:

/usr/share/glib-2.0/schemas/

a je třeba je zkompilovat, aby je DCONF vzal, proto provedeme příkaz:

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

Kompilace

Abychom mohli zkompilovat náš program, musíme v terminálu spustit následující příkaz:

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

A spusťte binární soubor pomocí příkazu:

./main

Závěry

Je to jedna z nejlepších metod k uložení stavu naší APP v GSCHEMA pomocí GLIB. Na jakoukoli otázku rád odpovím.

Zde je screenshot mého Ubuntu a příkladu:

snap-TUtorial


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Raul P. řekl

    Dobrý článek, pár GTK tutoriálů v C ++ není špatných. Věci se hodně změnily, oficiální stránka GTK doporučuje knihy z roku 2002, udělal jsem chybu, že jsem si je koupil.

    DevHelp pomáhá víc než kterákoli kniha.

    1.    Raul P. řekl

      Omlouvám se, že jsem myslel C, ne C ++. Když otevírám blokovací bloky, vždy zvolím „Projekt v C ++“, ale programuji v C.

  2.   nebezpečí řekl

    Dobrý učitel, rád bych věděl a vím, že tomu tak není, ale ve skutečnosti jsem si dal dost úderů hlavy, abych mohl tento přístup provést, musím přizpůsobit pozadí a přihlašovací obrazovku s institucionálním obrazem toho, kde pracuji v týmech uživatelé, mají venezuelské distro zvané Canaima, založené na Debianu 7 Wheezy, uživatelé se autentizují přes LDAP a několik uživatelů může pracovat na stejném PC, takže se může stát, že existuje několik relací, ve kterých musí vlastní tapetu, týmy jsou přizpůsobeny skriptem, aby usnadnily práci techniků, a poté jsou politiky vloženy serverem loutkáře.

    Snažil jsem se s gsettings, ale funguje to pouze s uživatelem, který se přihlašuje, zjevně ukládá informace v místní databázi na uživatele, které jsem dosud nedosáhl, hledám nějakou konfiguraci, která se vztahuje na celý systém a ne na jednoho uživatele.

    Stojí za zmínku, že obraz se neustále mění kvůli národním datům a jakémukoli jinému důvodu, takže nejde pouze o obraz, nahraje je loutkář každému klientovi.

    Netuším, zda lze něco takového použít na můj případ.
    Zdravím.