2012-01-10 1 views
2
QPixmap pic("../image.jpg"); 

setAutoFillBackground(true); 
QPalette palette; 
QPixmap scaled=pic.scaled (800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation); 

palette.setBrush(QPalette::Window, QBrush(scaled)); 

//this->setPalette(palette); 
QWidget *w= new QWidget(this); 
w->setGeometry(0,0,800,480); 
w->show(); 
w->setPalette(palette); 

그러나 위젯에는 이미지가 표시되지 않습니다.이미지를 다시 크기 조정하고 QWidget으로 어떻게 설정할 수 있습니까?

+0

대신 QPalette :: Background를 사용하면 어떻게됩니까? – Bart

+0

이미지를 축척하지 않을 때 작동합니까? –

+0

기본 창 – Thorin

답변

5

크기 조정 된 이미지를 위젯에 표시하려고합니까? 브러시에 이미지를 설정 한 다음 팔레트에 브러시를 설정하는 것이 올바른 방법이라고 생각하지 않습니다.

QLabel을 사용하여 위젯에 이미지를 표시 할 수 있습니다. 이와 같이 :

QPixmap pic("../image.png"); 
QPixmap scaled=pic.scaled (800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation); 

QLabel *label = new QLabel(this); 
label->setPixmap(scaled); 
+0

와 함께 작동하지만 레이블 단추가 작동하지 않을 때 (becaose 레이블은 단추가 겹침) 위젯을 통해 일부 Qpushbuttons를 표시하고 싶습니다. 그래서 배경을 변경하려면 위젯을 통해 이미지를 표시하려고합니다. – Thorin

+0

이 질문을 확인하십시오 : http://stackoverflow.com/q/6406940/2174 –