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

모두 괜찮습니다. .pro 파일을 변경 한 후에 qMake를 실행해야합니다. 당신의 설명은 절대적으로 옳았습니다. 덕분에 – Xear

+0

QMake는 나를 위해 그것을하지 못했지만 QtCreator를 다시 시작했습니다. –

5

: - :

"

: /images/image.png - 당신이하고있는 것처럼

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

그런 다음 당신은 당신의 이미지에 액세스 할 수 있습니다 "