Как я могу изменить масштаб изображения и установить его в QWidget?
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 ответа
Решение
Вы просто пытаетесь показать масштабированное изображение в виджете? Я не думаю, что установка изображения в кисти, а затем установка кисти в палитре - это правильный подход.
Вы можете просто использовать QLabel, чтобы показать изображение в виджете. Как это:
QPixmap pic("../image.png");
QPixmap scaled=pic.scaled ( 800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation );
QLabel *label = new QLabel(this);
label->setPixmap(scaled);
Вы показываете виджет перед настройкой палитры. Попробуйте сначала установить палитру.
Если это не помогает, попробуйте указать полный путь к файлу.