Wie kann ich ein Bild neu skalieren und es auf Qwidget setzen?
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.
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