Frage

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

Das Widget zeigt jedoch kein Bild an.

War es hilfreich?

Lösung

Versuchen Sie nur, das skalierte Bild in einem Widget zu zeigen? Ich denke nicht, dass das Bild in den Pinsel eingestellt wird und dann die Pinsel in die Palette zu setzen, ist der richtige Ansatz.

Sie können einfach ein Qlabel verwenden, um ein Bild in einem Widget anzuzeigen. So was:

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

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

Andere Tipps

Sie zeigen das Widget an, bevor Sie die Palette einstellen. Versuchen Sie zuerst die Palette einstellen.

Wenn dies nicht hilft, geben Sie den vollständigen Dateipfad an.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top