2

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

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

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

4

2 回答 2

1

只需尝试使用这两个文件(以未安装的优先):

if(!(UIManager).add_ui_from_file(../data/ui/mygui))
   (UIManager).add_ui_from_file(/incalled/location/mygui)
于 2012-05-21T09:45:03.933 回答
0

在Glom中,我创建了一个辅助函数来尝试两个位置,两个位置都在Makefile.am中定义(如果你只有一个Makefile.am,这更简单,通过使用非递归automake,这更简单): http ://git.gnome.org/browse/glom/tree/glom/glade_utils.h#n38

于 2012-05-26T08:16:35.643 回答