2015-02-18 4 views
0

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

ответ

4

Существует привязка C++ к gsettings в glibmm. С его помощью можно считывать значение из схемы, как показано ниже. Обратите внимание, что у меня нет системы 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; 
} 

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

1

Я не могу оставлять комментарии к запросу 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`

От here

+0

@ Pierre.Vriens Это хорошо сейчас? – Mirko

+0

намного лучше сейчас! –

Смежные вопросы