Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Возможности тулкита GTK+ и сопутствующих библиотек


Автор: А.Панин
Дата публикации: 3 декабря 2014 г.

Механизм для работы с файлами, содержащими пары ключ-значение

5. Пример использования

В приведенном ниже листинге показана реализация простейшего текстового редактора, который использует файл, содержащий пары ключ-значение для хранения заданных пользователем значений параметров конфигурации. В рамках данного приложения демонстрируется методика добавления и получения строковых, целочисленных и логических значений. Пользователю предоставляется возможность установки следующих параметров работы приложения:
  1. Размера и названия шрифта
  2. Цвета шрифта
  3. Режима переноса строк
  4. Указания на необходимость открытия последнего открытого файла при запуске приложения

При этом для реализации возможности автоматического открытия последнего открытого файла при запуске приложения также производится сохранение полного пути к этому файлу.

Ввиду того, что приложение разработано исключительно в качестве примера, при формировании пути к файлу конфигурации используется функция для получения пути к директории для хранения временных файлов g_get_tmp_dir(). При разработке реального приложения следует использовать вместо нее функцию для получения пути к пользовательской директории для хранения файлов конфигурации g_get_user_config_dir().

Исходный код приложения представлен в Листинге 1, "Код приложения", а также находится в архиве gkeyfile.tar.gz вместе с файлом Makefile для упрощения сборки. Для лучшего понимания в коде используются комментарии. Особое внимание следует уделить функциям открытия файла конфигурации и чтения конфигурационных данных (application_open_config_file()), записи конфигурационных данных и закрытия файла конфигурации (application_close_config_file()), вывода значений параметров конфигурации приложения в диалоге для их редактирования (application_show_settings()), применения параметров конфигурации приложения (application_apply_settings()), сохранения параметров конфигурации приложения (application_save_settings()) и сохранения пути к последнему открытому файлу (application_save_opened_file()). Вы можете осуществить сборку приложения либо просто перейдя в директорию с извлеченным из архива файлом исходного кода и введя команду make, либо воспользовавшись следующей командой:
gcc `pkg-config --cflags --libs gtk+-3.0` gkeyfile.c -o gkeyfile

Листинг 1. Код приложения

Как ясно из кода, данное приложение имеет графический интерфейс, но в случае использования класса GKeyFile вы вполне можете ограничиться интерфейсом командной строки, связывая ваше приложение с библиотекой GLib вместо GTK+ (в случае использования библиотеки GTK+ связывание с библиотекой GLib осуществляется автоматически). В случае связывания приложения с библиотекой GLib для его компиляции может использоваться следующая команда:
gcc `pkg-config --cflags --libs glib-2.0` <имя файла исходного кода> -o <имя исполняемого файла>

На иллюстрациях ниже представлены снимки главного окна приложения и диалога для редактирования значений параметров конфигурации приложения.

Главное окно приложения
Рисунок 1. Главное окно приложения

Диалог для редактирования значений параметров конфигурации приложения
Рисунок 2. Диалог для редактирования значений параметров конфигурации приложения

Заключение

Класс GKeyFile может вполне успешно применяться для хранения данных конфигурации приложений различных типов. В том случае, если ваше приложение использует небольшой объем данных конфигурации и вы хотите использовать простой и удобный механизм для хранения этих данных, класс GKeyFile является идеальным решением. Если же вам необходимо использовать множество уровней вложения наборов данных или вы желаете максимально интегрировать ваше приложение в окружение рабочего стола GNOME, вам следует ознакомиться со следующими статьями, так как в них будут описываться другие механизмы, которые могут использоваться для хранения данных конфигурации приложений на основе тулкита GTK+ и/или библиотеки GLib.


Следующая статья : Простой механизм разбора документов формата XML.