将非本地数据/媒体文件与C++应用程序 (gtkmm) 一起使用

Using Non-Local Data/Media Files with a C++ Application (gtkmm)

本文关键字:gtkmm 应用程序 一起 C++ 数据 媒体文件      更新时间:2023-10-16

我正在开始开发一个用 C++ 年编写的声学频谱分析工具(灵感来自 spek(,使用 gtkmm(GTK+ GUI 工具包的C++绑定(。我想我现在应该知道如何做到这一点,但是......

我的目录结构是 a-la-GNOME,例如 src/data/po/man/ 。需要我查询的具体情况是使用将位于data/ui的GTK UI管理器。对于这种特定情况,我希望能够以独立于安装的方式从此文件加载用户界面(例如,文件的加载不依赖于make install;可执行文件可以在运行make后从src/运行[并加载UI文件][从而将源代码编译为selfsame可执行]或从其安装前缀(。我将如何在源代码中引用 UI 文件(请记住,文件的加载不是通过创建文件对象 ( fopen(...) ( 而是通过将文件位置作为字符串参数传递给 (UIManager).add_ui_from_file(...) 来执行的(?

除了 UI 文件的这种特殊情况之外,我将如何使用自动工具构建过程对文件(即数据库、INI 文件、XML 架构(进行类似的引用?是否有一段相关的 Automake 代码来快速设置项目以使用这种类型的目录结构?

只需尝试使用这两个文件(卸载优先(:

if(!(UIManager).add_ui_from_file(../data/ui/mygui))
   (UIManager).add_ui_from_file(/incalled/location/mygui)

在 Glom 中,我创建了一个尝试两个位置的辅助函数,并在 Makefile.am 中定义这两个位置(如果您只有一个 Makefile.am,通过使用非递归自动制作,这更简单,无论如何都更简单(:http://git.gnome.org/browse/glom/tree/glom/glade_utils.h#n38