linux — чтение настроек из программы на C ++

Мне нужно программно получить значение масштабного коэффициента интерфейса com.ubuntu.user из gsettings в моей программе на C ++. Есть ли какой-нибудь элегантный способ сделать это, вместо того, чтобы вызывать gsettings двоичный файл и анализировать его вывод?

0

Решение

В glibmm есть привязка C ++ к gsettings. С его помощью чтение значения из схемы может быть сделано, как показано ниже. Обратите внимание, что у меня нет системы Ubuntu, чтобы проверить это, поэтому подробности основаны на кратком взгляде на документацию, в которой говорилось scale-factor является интегральным значением. Имея это в виду:

#include <giomm/settings.h>
#include <iostream>

int main() {
Glib::RefPtr<Gio::Settings> s = Gio::Settings::create("com.ubuntu.user-interface");
int i = s->get_int("scale-factor");

std::cout << i << std::endl;
}

Смотрите также Вот.

4

Другие решения

Я не могу оставить комментарий к ответу Wintermute из-за низкой репутации, поэтому я публикую его здесь.

Newbe, как и я, может иметь проблемы в том числе <giomm/settings.h> (не найдено): решение состоит в добавлении команды компиляции gcc `pkg-config --cflags --libs glibmm-2.4 giomm-2.4` (с кавычками)

Если ваш исходный файл program.ccВы можете скомпилировать это с:

g++ program.cc -o program `pkg-config --cflags --libs glibmm-2.4 giomm-2.4`

От Вот

1

По вопросам рекламы [email protected]