2013-06-14 4 views
7

QLabelウィジェット内に画像を表示したいと思います。画像はresource.qrcファイルにフォルダ./images/相対に位置し、次のように含まれています:Qt qrcリソースパスが機能しません

<RCC> 
    <qresource prefix="/images"> 
     <file>image.png</file> 
    </qresource> 
</RCC> 

今私はQLabel内の画像を表示したい:

QPixmap pixmap(":/images/image.png"); 
label->setPixmap(pixmap); 

これは動作しません。デバッグモードではpixmap = NULLです。私はqrcのパスが間違っていると思います。画像への絶対システムパスがc:/images/...の場合、正常に動作します。何か案が?

+1

リソースを初期化しましたか? –

+0

そうだと思います。私の.proファイルでは、 "RESOURCES = resource.qrc"と書かれています。 – Xear

+1

あなたは 'Q_INIT_RESOURCE(resources);のようなものが必要です。あなたのプログラムで –

答えて

6

指定した接頭辞は、アプリ内のリソースパスに適用されます。ファイルの実際のパスには適用されません。正しいリソースは、

<RCC> 
    <qresource prefix="/images"> 
     <file>images/image.png</file> 
    </qresource> 
</RCC> 

です。リソースパスは:/images/images/image.pngです。

prefix="/"をRCCファイルに指定し、://images/image.pngリソースパスを使用することもできます。もっと便利だと思います。あなたは、リソースファイルの寄付で別名を使用する場合

+0

私は両方を試みたが、それも動作しません。 – Xear

+0

OK、すべて問題ありません。 .proファイルの変更後にqMakeを実行する必要があります。あなたの記述は絶対に正しいものでした。ありがとう – Xear

+0

QMakeは私のためにそれをしませんでしたが、QtCreatorを再起動しました。 –

5

: - :

:/images/image.png - あなたがやっているよう

<RCC> 
<qresource prefix="/images"> 
    <file alias="image">images/image.png</file> 
</qresource> 
</RCC> 

は、次に、あなたのイメージにアクセスすることができます"

関連する問題