Мне нужно программно получить значение масштабного коэффициента интерфейса com.ubuntu.user из gsettings в моей программе на C ++. Есть ли какой-нибудь элегантный способ сделать это, вместо того, чтобы вызывать gsettings двоичный файл и анализировать его вывод?
В 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;
}
Смотрите также Вот.
Я не могу оставить комментарий к ответу 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`
От Вот