[PyQt] QLabel with scaled contents pixmap not updated after painting
Florian Bruhin
me at the-compiler.org
Tue Nov 26 13:00:43 GMT 2019
Hey,
On Tue, Nov 26, 2019 at 01:47:40PM +0100, Maurizio Berti wrote:
> I noticed a strange behavior when drawing over an existing QPixmap of a
> QLabel.
> When scaledContents is false (the default), the image is updated correctly:
>
> [...]
>
> But if I use setScaledContents(True) in the init, the image is not updated
> anymore, not even after calling repaint or hiding/showing the label again.
> So far, the only way I found to show the changes is to set the scaled
> contents to false and back again to true, right after closing the painter.
>
> I have to specify that I'm using an old version of PyQt (5.7.1) which I
> cannot update, so maybe the issue has been already solved. Also, I'm on
> Linux, using xorg-x11.
>
> Can anyone confirm this?
I can reproduce with Qt 5.14, but I don't think it necessarily is a Qt bug.
Looking at the code, turning on scaledContents resizes the underlying pixmap
once and then caches it:
https://github.com/qt/qtbase/blob/v5.14.0-beta3/src/widgets/widgets/qlabel.cpp#L1092-L1104
What's your actual usecase? You could probably either modify/redisplay the
pixmap, or perhaps have a widget with a transparent background over the QLabel
instead.
Florian
--
me at the-compiler.org (Mail/XMPP) | https://www.qutebrowser.org
https://bruhin.software/ | https://github.com/sponsors/The-Compiler/
GPG: 916E B0C8 FD55 A072 | https://the-compiler.org/pubkey.asc
I love long mails! | https://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20191126/6a509c43/attachment.sig>
More information about the PyQt
mailing list