You can ask QLabel to scale the image, by setting QLabel::scaledContents property to true. Other solution is to add scrollbars using QScrollArea.

When it comes to sizes, size() returns valid data only after you show the widget for the first time.