Come faccio a ridimensionare un'immagine e impostarla QWidget?
Domanda
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);
Ma il widget non mostra alcuna immagine.
Soluzione
Stai solo cercando di mostrare l'immagine in scala in un widget? Non credo che l'impostazione l'immagine nella spazzola e quindi impostando il pennello nella palette è l'approccio corretto.
Si può semplicemente utilizzare un QLabel per mostrare un'immagine in un widget. In questo modo:
QPixmap pic("../image.png");
QPixmap scaled=pic.scaled ( 800, 480, Qt::IgnoreAspectRatio, Qt::FastTransformation );
QLabel *label = new QLabel(this);
label->setPixmap(scaled);
Altri suggerimenti
Si stanno mostrando il widget prima di impostare la tavolozza. Prova a impostare la tavolozza prima.
Se questo non aiuta, provare a specificare il percorso completo del file.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow