正在从C++程序中读取g设置

Reading gsettings from C++ program

本文关键字:读取 设置 程序 C++      更新时间:2023-10-16

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

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;
}

另请参见此处。

由于声誉不佳,我无法向Wintermute回复发布评论,所以我将其发布在这里。

Newbe和我一样,在包含<giomm/settings.h>(找不到)时可能会遇到问题:解决方案是将`pkg-config --cflags --libs glibmm-2.4 giomm-2.4`(带backticks)附加到gcc编译命令

如果你的源文件是program.cc,你可以用编译它

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

从这里