I wish this helpful for you When you create a QScrollArea with Qt Designer a widget called scrollAreaWidgetContents is created and this is the one inside the QScrollArea and therefore its size is used to establish what is shown in the scrollbar, in your case imageLabel is the son of scrollAreaWidgetContents it is observed but scrollAreaWidgetContents does not know the size of imageLabel, so in these cases you must use the layouts so that the minimum size of the scrollAreaWidgetContents matches that of the imageLabel.
around this issue Do not draw inside a widget outside of the paintEvent(). This is not supported by Qt. You may draw on a QImage or QPixmap instead, and then in paintEvent() of your widget, draw that image. Images can be initialized with all pixels transparent as well, if you like to composite several images (background+drawing) instead of drawing on the background directly.
PyQt5 Displaying an Image using a QLabel from Memory
will help you I am trying to create a PyQt5 - QLabel with both image and text. I would like to have a text at the bottom of the image. Below is a part of the code , You have to use 2 QLabel in a QVBoxLayout: