在应用程序中分发 glade 文件

Distribute a glade file inside an application

在我开始之前,我知道 GResource 的存在,但是我使用的是 gtkmm (C++),我不确定 GResource 是否适用于 C++。我找不到任何关于 Glib::GResource 的内容,我已经找了一段时间了。

无论如何,我正在使用 Gtkmm 编写 GUI,我想打包我在可执行文件中加载的 .glade 文件,这样可执行文件就可以 运行 而无需下一个文件给它。我不确定我是否完全理解 GResources 的工作原理,而且我在任何地方都找不到任何明确的说明。

那么,使用 Gtkmm,我如何将 .glade 文件打包到我的可执行文件中?

更新:我找到了this. (Gio::Resource),这听起来很有希望,但没有文档。

我进行了更多研究并找到了 this tutorial and this documentation。看起来你需要的是 Gio::Resource::lookup_data_global。以下是我的回答的 C 版本。


当 glib 世界中的某些东西缺少文档时,是时候阅读 c. In short: with the help of glib-compile-resources 的文档和一个简单的 xml 文件,您可以构建一个 .c 文件,该文件可以编译到您的应用程序中.之后就可以使用g_resources_lookup_dataresourceS,很重要)加载数据。