Как я могу спасти изображение и установить его в Qwidget?

StackOverflow https://stackoverflow.com/questions/8805176

  •  26-10-2019
  •  | 
  •  

Вопрос

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); 

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

Это было полезно?

Решение

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

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

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

QLabel *label = new QLabel(this);
label->setPixmap(scaled);

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top