Как я могу изменить масштаб изображения и установить его в QWidget? - PullRequest
3 голосов
/ 10 января 2012
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); 

Но виджет не показывает изображение.

Ответы [ 2 ]

5 голосов
/ 10 января 2012

Вы просто пытаетесь показать масштабированное изображение в виджете?Я не думаю, что установка изображения в кисти, а затем установка кисти в палитре - это правильный подход.

Вы можете просто использовать QLabel для отображения изображения в виджете.Как это:

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

QLabel *label = new QLabel(this);
label->setPixmap(scaled);
0 голосов
/ 19 сентября 2018

Вы показываете виджет перед настройкой палитры.Попробуйте сначала установить палитру.

Если это не поможет, попробуйте указать полный путь к файлу.

...