Seite 1 von 1

Bild an QLabel anpassen

Verfasst: 22. Februar 2011 14:22
von reinki0013
Hallo zusammen,

ich habe ein kleines layout problem...

und zwar habe ich ein Fenster, wo mittig ein Bild in einem QLabel sitzt.

Das bild, ist eine ".png"-Datei und hat eine auflösung von 2100x1575.
Jetzt habe ich aber verschiedene Monitorauflösungen, z.B. 1200x1024 oder 1366x721 und ich möchte das das QLabel sich mit der Bildschirmauflösung sich mitanpasst. Ich weiß nicht recht wie ich das lösen soll.

Ich habe es jetzt mal versucht, die max. Größe des QLabel auf 640x480 zu setzen, das funktioniert auch wunderbar bei einer Auflösung von 1200x1024. Allerdings wenn ich das Programm dann mit einer Auflösung von 1366x721 starte, ist das Bild logischer weise sehr in die Länge gezerrt, die Höhe bleibt. Das QLabel hat dann eine Abmessung mit 640x210. Das schaut natürlich nicht sonderlich schön aus.

Habt Ihr da einen Lösungsansatz für mich?
Gibt es eine Funktion oder ein Flag das ich setzen kann, damit das QLabel sich mit der Bildschirmauflösung mitanpasst, also das Seitenverhältnis sich mitändert beim Bild??

Wäre toll wenn Ihr mir weiterhelfen könnt!!

lg

Verfasst: 22. Februar 2011 17:07
von upsala
QWidget ableiten, paintEvent überladen...

Qt::KeepAspectRatio

Verfasst: 23. Februar 2011 13:06
von softwaremaker
ui->label->setPixmap( mypixmap.scaled( ui->label->width(), ui->label->height(), Qt::KeepAspectRatio, Qt::SmoothTransformation ) );

Edit: das ganze rufe ich bei resizeEvent des Labels auf.

Verfasst: 23. Februar 2011 13:12
von franzf
Warum nicht einfach
scaledContents : bool
This property holds whether the label will scale its contents to fill all available space.
When enabled and the label shows a pixmap, it will scale the pixmap to fill the available space.
This property's default is false.
Access functions:
bool hasScaledContents () const
void setScaledContents ( bool )
Da du aber irgendwie "QLabel" und "Bild" durcheinander wirbelst: Liegt dein QLabel in einem Layout, damit bei einem Resize des Fensters das QLabel automatisch mit angepasst wird?