2012-04-28 31 views
2

我正在用gtkmm(GTK + GUI工具包的C++綁定)編寫的聲譜分析工具(靈感來源於spek)開始開發。我猜想,我應該知道如何現在做這個,但是......在C++應用程序中使用非本地數據/媒體文件(gtkmm)

我的目錄結構是-LA-GNOME,e.g src/data/po/man/。提出我需要查詢的具體情況是使用位於data/ui的GTK UI Manager。對於這種特定情況,我希望能夠以獨立於安裝的方式從此文件加載用戶界面(例如,加載文件不取決於make install;可執行文件可能會運行[並加載UI文件]從src/運行make [因此將源文件編譯爲可執行文件]或從其安裝前綴運行)。我如何在我的源代碼中引用UI文件(請記住,文件的加載不是通過創建文件對象(fopen(...))而是通過將文件位置作爲字符串參數傳遞給(UIManager).add_ui_from_file(...))來執行的?

除了UI文件的這種特殊情況之外,我將如何使用autotools構建過程來對文件(即數據庫,INI文件,XML模式)進行類似的引用?是否有一段相關的Automake代碼可以快速設置項目來使用這種類型的目錄結構?

回答

1

簡單地嘗試使用這兩個文件(與未安裝採取優先次序):

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

您不應在代碼中硬編碼文件位置。 – murrayc 2014-10-06 08:05:57

相關問題