2013-10-18 4 views
2

내부 리소스의 이미지를 QPushButton의 배경 이미지로 넣어야합니다. 이미지의 크기를 단추의 크기에 맞게 조정해야합니다. 나는 here 그런 일을하는 방법을 찾았지만 아무것도 작동하지 않는 것 같습니다. 은 최근 응답에서 다음과 같은 코드의 사용을 제안했다 :Qt QPushButton의 Qt 배경 이미지

void MyDialog::SetBgImage(QWidget *pButton) 
{ 
    QPixmap pixmap(":/Icons/images/Sfondo.png"); 
    QPalette palette = pButton->palette(); 
    palette.setBrush(pButton->backgroundRole(), QBrush(pixmap)); // 1 
    QPushButton *pPButton = qobject_cast<QPushButton *>(pButton); 
    if (pPButton!=NULL) 
      pPButton->setFlat(true); 
    pButton->setAutoFillBackground(true); 
    pButton->setPalette(palette); // 2 
:
QPixmap pixmap("image.jpg"); 
QPalette palette;  
QPushButton *button= new QPushButton(this); 
palette.setBrush(button->backgroundRole(), QBrush(pixmap)); 
button->setFlat(true); 
button->setAutoFillBackground(true);  
button->setPalette(palette); 

그래서 내가 그 코드를 가져다가 그것을 조금 '변경을 나는 QTCreator로 만든 UI를 사용하고 원인

} 나는이 방법으로 호출 생성자에서

:

SetBgImage(ui->pushButton_Button1); 

톤을 그는 버튼이 올바르게 표시되었다는 대화 상자가 표시됩니다.

* glibc에 감지 * ./MyAppName : malloc에 ​​() : 메모리 손상 : 나는 다음과 같은 오류 메시지가 대화 상자를 닫을 때 불행하게도 0x0047dc78 ***를

내가 제거하는 경우 // 1으로 표시된 줄 또는 // 2으로 표시된 줄은 사라집니다.

아이디어가 있으십니까?

답변

5
button->setStyleSheet("border-image:url(:/Icons/images/Sfondo.png);"); 

디자이너로부터 스타일 시트를 변경하십시오.

+0

작동합니다! 고맙습니다. –

0

UI-> pushButton_5-> setStyleSheet ("backgroundImage의 : 홈페이지 (/ 홈/데스크탑/qtproject/ sample2를/이미지 /11.png);");

Qpushbutton에서 배경을 설정하는 경우