Vala + GTK + 3 i Granite (zapisz wartości w dconf)

Programując w Vala i GTK +, wszyscy zastanawialiśmy się kiedyś jak sprawić, by aplikacja napisana w Vala i GTK + mogła zapisywać stany parametrów rozmiaru okna i innych? Są to typowe przypadki, których używamy gschematy aby zapisać te wartości (ta dobrze znana aplikacja edytor dconf), która graficznie zarządza tymi schematami.

Teraz pokażę Ci, jak to zrobić w prostych krokach i bez komplikacji przy użyciu klasy Granite.Services.Settings z biblioteki Granite.

Czego potrzebujemy?

Najpierw musimy mieć zainstalowane biblioteki GTK +, Granite i Vala, aby skompilować nasz kod. Aby to zrobić w Ubuntu / ElementaryOS używamy polecenia:

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

Będziemy również potrzebować dowolnego edytora tekstu obsługującego składnię Vala / GTK + i XML, takiego jak Scratch Text Editor (domyślny ElementaryOS), GEdit, Sublime Text + Plugins itp.

Kod

Oto przykładowe pliki. Dla lepszego zrozumienia zostawiam kod w PASTE z komentarzami:

main.vala
poradnik.vala
ustawienia.vala
org.tutorial.gschema.xml

Objaśnienia

Plik schematu, jeśli lub jeśli musi to być XML i nazywać się ORG.APLICACION.GSCHEMA.XML. Oznacza to, że zarówno ORG, jak i GSCHEMA.XML muszą istnieć, aby dconf mógł rozpoznać go jako schemat. Dodatkowo te diagramy należy skopiować do trasy:

/usr/share/glib-2.0/schemas/

i muszą zostać skompilowane, aby DCONF je wziął, w tym celu wykonujemy polecenie:

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

Kompilacja

Aby skompilować nasz program, musimy uruchomić następujące polecenie w terminalu:

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

I uruchom plik binarny poleceniem:

./main

Wnioski

Jest to jedna z najlepszych metod zapisywania stanu naszej aplikacji w GSCHEMIE przy użyciu GLIB. Z przyjemnością odpowiem na wszelkie pytania.

Oto zrzut ekranu mojego Ubuntu i przykład:

przystawka samouczek


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Raul P. powiedział

    Dobry artykuł, kilka tutoriali GTK w C ++ nie jest złych. Wiele się zmieniło, oficjalna strona GTK poleca książki z 2002 roku, popełniłem błąd kupując.

    DevHelp pomaga bardziej niż jakakolwiek książka.

    1.    Raul P. powiedział

      Przepraszam, miałem na myśli C, nie C ++. Kiedy otwieram bloki kodu, zawsze wybieram „Projekt w C ++”, ale programuję w C.

  2.   groźba powiedział

    Dobry tuto, chciałbym wiedzieć i wiem, że tak nie jest, ale tak naprawdę dałem sobie wystarczająco dużo ciosów w głowę, aby móc wykonać to podejście, muszę dostosować tło i ekran logowania za pomocą instytucjonalnego obraz tego, gdzie pracuję w zespołach użytkowników, mają wenezuelską dystrybucję o nazwie Canaima, opartą na Debianie 7 Wheezy, użytkownicy uwierzytelniają się przez LDAP i kilku użytkowników może pracować na tym samym komputerze, więc może być tak, że jest ich kilku sesje, w których muszą być właścicielami tapety, zespoły są dostosowywane przez skrypt, aby ułatwić pracę techników, a następnie zasady są wstrzykiwane przez serwer puppetmaster.

    Próbowałem z gsettings, ale działa tylko z użytkownikiem, który się loguje, najwyraźniej zapisuje informacje w lokalnej bazie danych na użytkownika, czego jeszcze nie osiągnąłem, szukam konfiguracji, która dotyczy całego systemu a nie do jeden użytkownik.

    Warto wspomnieć, że obraz ciągle się zmienia z powodu narodowych dat i innych powodów, więc nie jest to tylko obrazek, są one przesyłane przez lalkarza do każdego klienta.

    Nie mam pojęcia, czy coś takiego można zastosować w moim przypadku.
    Pozdrowienia.