Detach PyQt6 QPixmap instance before returning #8509
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Alternative to #8507
The user in that PR reported seeing corrupt output from
ImageQt.toqpixmap()
on Windows.Pillow/src/PIL/ImageQt.py
Lines 214 to 216 in 9a4b3e0
Testing, I found I was able to use GitHub Actions to reproduce the matter.
Testing further, I found that it was only happening when
qimage
was inside the function - if I unwrapped the function so thatqimage
wouldn't be garbage collected, the problem disappeared. I created a reproduction just using PyQt6 and asked about this at https://stackoverflow.com/questions/79133259/corrupted-display-from-qpixmap-fromimage. The response I received wasThis fix allows us to test PyQt6 in GitHub Actions with CPython, which would otherwise fail.