Фоновое изображение Qt для QPushButton

Мне нужно поместить изображение из внутренних ресурсов в качестве фонового изображения 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:

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 ошибка исчезнет.

Есть идеи?

2

Решение

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

Или измените таблицу стилей от дизайнера.

5

Другие решения

ui-> pushButton_5-> setStyleSheet ( «BackgroundImage: URL (/ дом / Desktop / qtproject /
sample2 / изображения
/11.png); «);

Для настройки фона в Qpushbutton

0

По вопросам рекламы [email protected]