我在/home/me/xmls/foo/bar.xml 一個文件,包含此路徑提取絕對文件路徑加載文件
如下因素代碼正確的QRC文件:
QFileInfo f (":/foo/bar.xml");
cout<<f.absoluteFilePath().toAscii().data()<<endl;
輸出:
:/foo/bar.xml
時我期待:
/home/me/xmls/foo/bar.xml
有沒有辦法恢復的QRessource加載文件系統的絕對路徑?
我在/home/me/xmls/foo/bar.xml 一個文件,包含此路徑提取絕對文件路徑加載文件
如下因素代碼正確的QRC文件:
QFileInfo f (":/foo/bar.xml");
cout<<f.absoluteFilePath().toAscii().data()<<endl;
輸出:
:/foo/bar.xml
時我期待:
/home/me/xmls/foo/bar.xml
有沒有辦法恢復的QRessource加載文件系統的絕對路徑?
QResource將其內容編碼到一個文件中,該文件被編譯到最終的二進制文件中。所以,我不希望在運行時無法獲得原始路徑。由於Qt docs state: -
Qt的資源系統是在應用程序的可執行文件
此外,它沒有任何意義存儲二進制文件想原來的路徑與平臺無關的機制,因爲其他用戶不太可能在該位置擁有該文件。
此:
QFileInfo f (":/foo/bar.xml");
意味着你會從資源文件加載一個文件。基本上,這是一個庫(靜態或共享),其中包含資源(圖像,翻譯等)。
這是訪問資源中文件的標準語法,如解釋in their documentation for the resources所述。
你是對的。我誤解了QResource及其用法。 –