Domanda

Se una QImage è racchiusa in una QLabel, è possibile ridimensionarla su o giù quando si ridimensiona la finestra e si mantengono le proporzioni (in modo che l'immagine non si distorca)? Ho capito che può essere ridimensionato usando setScaledContents () e puoi impostare una dimensione minima e massima, ma l'immagine perde ancora il suo aspetto.

Sarebbe bello se questo potesse essere spiegato usando Python (dato che non conosco c ++), ma prenderò quello che posso ottenere. : -)

Grazie in anticipo!

È stato utile?

Soluzione

Sto mostrando questo come C ++, che è la documentazione che sto guardando. Non dovrebbe essere troppo difficile da convertire in Python.

Devi creare una derivata personalizzata di QLayoutItem , che sovrascrive bool hasHeightForWidth () e int heightForWidth (int width) per preservare il proporzioni in qualche modo. È possibile passare l'immagine e interrogarla oppure è possibile impostare direttamente il rapporto. Dovrai anche assicurarti che la funzione widget () restituisca un puntatore all'etichetta corretta.

Una volta fatto ciò, puoi aggiungere un elemento di layout a un layout come faresti con un widget. Pertanto, quando l'etichetta viene aggiunta, modificala per utilizzare la classe di elementi del layout personalizzato.

Non ho ancora testato nulla di tutto ciò, quindi è una soluzione teorica a questo punto. Non so come fare questa soluzione tramite il designer, se fosse desiderato.

Altri suggerimenti

Converti l'immagine in un QPixmap (usa QPixmap.fromImage (img) ) e quindi puoi usare scaledToHeight () .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top