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:
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:
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.
Przepraszam, miałem na myśli C, nie C ++. Kiedy otwieram bloki kodu, zawsze wybieram „Projekt w C ++”, ale programuję w C.
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.