内部リソースからの画像を QPushButton の背景画像として配置する必要があります。また、画像のサイズをボタンのサイズに合わせる必要があります。ここでそれを行う方法を見つけましたが、何も機能していないようです。最後の返信では、次のコードの使用が提案されました。
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 を使用しているため、そのコードを少し変更しました。
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
}
コンストラクターでは、次のように呼び出します。
SetBgImage(ui->pushButton_Button1);
ダイアログが表示されると、ボタンが正しく表示されます。残念ながら、ダイアログを閉じると、次のエラー メッセージが表示されます。
* glibc が検出されました * ./MyAppName: malloc(): メモリ破損: 0x0047dc78 ***
//1でマークされた行または//2でマークされた行を削除すると、エラーは消えます。
何か案は?