Програмуючи у Vala та GTK +, ми всі коли-небудь задавались питанням, як зробити так, щоб додаток, написаний на Vala та GTK +, міг зберігати стани параметрів розміру вікна та інших? Вони належать до тих типових випадків, які ми використовуємо гшеми зберегти ці значення (цей добре відомий додаток dconf-editor), який графічно управляє цими схемами.
Тепер я покажу вам, як це зробити простими кроками та без ускладнень за допомогою класу Granite.Services.Settings з бібліотеки Granite.
Що нам потрібно?
Спочатку нам потрібно встановити бібліотеки GTK +, Granite та Vala, щоб скомпілювати наш код. Для цього в Ubuntu / ElementaryOS ми використовуємо команду:
sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac
І нам також знадобиться будь-який текстовий редактор, який підтримує синтаксис Vala / GTK + та XML, такий як текстовий редактор Scratch (за замовчуванням ElementaryOS), GEdit, Sublime Text + Plugins тощо
Код
Ось приклади файлів. Для кращого розуміння я залишаю код у PASTE з коментарями в них:
Пояснення
Файл схеми, якщо він має бути XML і називатися ORG.APLICACION.GSCHEMA.XML. Тобто і ORG, і GSCHEMA.XML повинні бути там, щоб dconf розпізнав його як схему. Крім того, ці схеми необхідно скопіювати на маршрут:
/usr/share/glib-2.0/schemas/
і їх потрібно скомпілювати для того, щоб DCONF взяв їх, для цього ми виконуємо команду:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Компіляція
Для компіляції нашої програми ми повинні запустити таку команду в терміналі:
valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala
І запустіть двійковий файл за допомогою команди:
./main
Висновки
Це один з найкращих методів збереження стану нашого додатка в GSCHEMA за допомогою GLIB. На будь-яке запитання я з радістю відповім.
Ось скріншот мого Ubuntu і приклад:
Хороша стаття, кілька підручників GTK на C ++ - це добре. Справа сильно змінилася, офіційний сайт GTK рекомендує книги 2002 року, я помилився, купивши їх.
DevHelp допомагає більше, ніж будь-яка книга.
Вибачте, я мав на увазі C, а не C ++. Коли я відкриваю кодові блоки, я завжди вибираю "Проект на C ++", але програмую на C.
Хороший репетитор, я хотів би знати, і я знаю, що це не так, але, по правді кажучи, я завдав собі достатньо ударів головою, щоб мати змогу здійснити такий підхід, мені потрібно налаштувати фон та екран входу в систему з установою Зображення того, де я працюю в командах користувачів, у них є дистрибутив Венесуели під назвою Canaima, заснований на Debian 7 Wheezy, користувачі проходять автентифікацію через LDAP, і кілька користувачів можуть працювати на одному ПК, тому може бути так, що їх є кілька під час сеансів, в яких вони повинні володіти шпалерами, команди налаштовуються за сценарієм для полегшення роботи техніків, а потім політики вводяться сервером puppetmaster.
Я пробував з gsettings, але це працює лише з користувачем, який входить в систему, мабуть, зберігає інформацію в локальній базі даних для кожного користувача, чого я ще не досяг, я шукаю якусь конфігурацію, яка стосується всієї системи, а не одного користувача.
Варто зазначити, що зображення постійно змінюється внаслідок національних дат та будь-яких інших причин, тому це не просто зображення, вони завантажуються ляльководом до кожного клієнта.
Я не уявляю, чи можна щось подібне застосувати до моєї справи.
Привіт.