从C ++程序中读取gsettings

时间:2015-02-18 11:08:15

标签: c++ linux gsettings

我需要以编程方式从我的C ++程序中的gsettings获取com.ubuntu.user-interface scale-factor的值。有没有优雅的方法来做到这一点,而不是调用gsettings二进制文件并解析它的输出?

2 个答案:

答案 0 :(得分:4)

在glibmm中有一个与gsettings绑定的C ++。有了它,可以从模式中读取值,如下所示。请注意,我没有可以对其进行测试的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 :(得分: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