Merge pull request #1833 from pijyoi/fix_pyqt61_scatterplot

fix ScatterPlot render issues on PyQt6 6.1
This commit is contained in:
Ogi Moore 2021-06-12 08:36:01 -07:00 committed by GitHub
commit cb4af3ac97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View File

@ -23,6 +23,7 @@ from .GraphicsObject import GraphicsObject
from .UIGraphicsItem import UIGraphicsItem
from .. import getConfigOption
import warnings
import sys
translate = QtCore.QCoreApplication.translate
@ -1287,7 +1288,7 @@ class ROI(GraphicsObject):
return np.empty((width, height), dtype=float)
im = QtGui.QImage(width, height, QtGui.QImage.Format.Format_ARGB32)
im.fill(0x0)
im.fill(QtCore.Qt.GlobalColor.transparent)
p = QtGui.QPainter(im)
p.setPen(fn.mkPen(None))
p.setBrush(fn.mkBrush('w'))
@ -1297,8 +1298,9 @@ class ROI(GraphicsObject):
p.translate(-bounds.topLeft())
p.drawPath(shape)
p.end()
mask = fn.imageToArray(im, transpose=True)[:,:,0].astype(float) / 255.
return mask
cidx = 0 if sys.byteorder == 'little' else 3
mask = fn.qimage_to_ndarray(im)[...,cidx].T
return mask.astype(float) / 255
def getGlobalTransform(self, relativeTo=None):
"""Return global transformation (rotation angle+translation) required to move

View File

@ -120,7 +120,7 @@ def renderSymbol(symbol, size, pen, brush, device=None):
penPxWidth = max(math.ceil(pen.widthF()), 1)
if device is None:
device = QtGui.QImage(int(size+penPxWidth), int(size+penPxWidth), QtGui.QImage.Format.Format_ARGB32)
device.fill(0)
device.fill(QtCore.Qt.GlobalColor.transparent)
p = QtGui.QPainter(device)
try:
p.setRenderHint(p.RenderHint.Antialiasing)