2017-09-23 315 views
1

我嘗試了很多東西,但他們沒有工作。C++/Qt - 無法從qrc文件打開.txt

我使用Qt 5.9.1和我wouldlike打開一個QFile時可變文本文件(這是一個QRC文件),像這樣:

QFile file(":/txt/config"); 

我還試圖用

QFile file("qrc:/txt/config");  

這裏的QRC文件(總結):

<qresource prefix="/txt"> 
    <file alias="config">resources/files/config.txt</file> 
</qresource> 

我的.pro確實有INCLUDEPATH += .

我已經tryed到:

Build -> Clean all 
Build -> Run qmake 
Build -> Build all 

它什麼都沒有改變,在每次啓動,我有這樣的輸出:

QIODevice::read (QFile, ":/txt/config"): device not open 

在.qrc的路徑是正確的,QtCreator找到文件當我瀏覽目錄,並在編輯器中打開它像一個正常的文本文件

感謝您的幫助,並對我的英語感到抱歉...(和編輯功能不允許我添加你好大家在頂部,s o我在這裏說:))

+0

如果文件名是config.txt的,爲什麼你試圖打開TXT /配置?這些顯然是不同的文件名。 – MrEricSir

+0

因爲我使用別名「config」。我也嘗試打開config.txt和/txt/resources/files/config.txt。沒有工作 – NicoTine

+0

我剛測試過,代碼看起來很好。可能是qmake沒有重新生成文件的問題。有時'make clean'和/或'qmake'不起作用。嘗試刪除'Makefile'和/或生成'qrc_yourAppName.cpp'。 – LeBlue

回答

2

由於內容嵌入到應用程序二進制文件中,因此無法打開資源文件進行寫入。你必須打開它只讀

QFile file(":/txt/config"); 
if(!file.open(QIODevice::ReadOnly)) { 
    qDebug() << "error: " << file.errorString(); 
}