2012-01-02 7 views
0

qtのproファイルのリソースファイルに追加されたテキストファイルがあります。 boost::filesystemでこのファイルにアクセスしたいと思います。私はそうするためにQResourceを使用する必要があることを学んだ、私はいくつか試してみた:QResourceを使用してファイルを読み取るにはどうすればよいですか?

QResource resource("./Resources/setting_files/accepted_file_extensions.txt"); 
boost::filesystem3::ifstream fin(resource.absoluteFilePath().toStdString()); 

をし、それが動作しませんが、なぜですか?

+0

この質問を投稿した理由はわかりません。この前の質問に対する答えは、QFileを使用するよう指示します。 QResource(そこにリンクしているドキュメントとして)は、外部リソースファイルを読み込むことです。あなたのアプリケーションにコンパイルされたリソースはファイルシステムには見えないので、ブーストも普通の 'open'コールもそれらを見ることができません。 – Mat

+0

@Mat、私の前の質問に対する答えでは、代わりにQResourceまたはQFileを使用することができます。 – smallB

+0

はい、リンクされたドキュメントを読むはずです。 QResourceは外部リソースファイルをロードするためのものです。 – Mat

答えて

1

QResourceは、基本的に他のいくつかの異なるファイル(画像、文書等)の化合物であるファイルである外部バイナリ・リソースをロードするために使用されます。

ワークフローは次のとおりです。

  • あなたが特定のQt QRCマークアップタグを使用して、バイナリとして組み合わせることするファイルを指定するリソースファイル(拡張子.qrc)を作成します。
  • リソースデータバイナリファイルのすべてのファイルを(Linuxの場合)コマンドrcc -binary myresource.qrc -o myresource.rccを使用して結合します。
  • 最後に、QResource::registerResource("/path/to/myresource.rcc");で登録してQResourceインスタンスを使用して(動的に)リソースをインクルードします。

これは、一つのファイルを使用して複数のファイルをインポートするための非常に有用です。これは組み込みシステムにも非常に役立ちます。

出典:http://doc.qt.digia.com/qt/resources.html#external-binary-resources

関連する問題