2017-09-02 6 views
0

私は最近Qtを使ってカードゲームを構築しようとしていましたが、私は非常に奇妙なバグに出くわします。QIODevice :: write:デバイスが開かない

QFile file(":/file/02"); 
file.open(QIODevice::ReadWrite|QIODevice::Truncate); 

2行目の戻り値はfalseです。だから私がファイルを読み書きしようとすると、この例外がスローされます。 ただし、ファイルが実際に存在すると、プロジェクト内のQRCファイルは次のように書いている:

<qresource prefix="/file"> 
<file alias="01">data.json</file> 
<file alias="02">deck.json</file> 

私もこのQRCファイルを追加した後のqmake実行しましたが、すべてが同じまま。どうすれば修正できますか?どうもありがとう。 docsによると

答えて

0

のQtリソースシステムは、アプリケーションの実行可能ファイルに バイナリファイルを格納するためのプラットフォームに依存しないメカニズムです。これは、ご使用の アプリケーションが常に特定のファイルセット(アイコン、翻訳 ファイルなど)を必要とし、ファイルを失うリスクを回避したい場合に便利です。

それはリソースの一部であるとして、ファイルだけ読んがあるので、あなたが書き込み許可を得て、それを開いた場合、それは常にfalseを返します。

つまり、.qrcに格納されたファイルは静的です。

+0

問題を説明する未読のドキュメントは常にあります...ありがとう:) – AerysNan

関連する問題