Meine Liniendiagramme gehen leicht über die Begrenzungsrahmen hinaus, aber dieser Effekt gefällt mir (und ich möchte ihn behalten):

Wenn ich jedoch nach unten streiche, kommt es zu etwas Neulackierung und irgendwie auch zu einer Neulackierung des Hintergrunds, was zu einem führt Temporäres Bild, bei dem der neutrale Hintergrund die übermalten Linien auflöst:

Wenn ich das Fenster verlasse oder die Kopfzeile berühre, erfolgt erneut ein Neuanstrich, zurück zum ersten Bild.
Fragen
Wie und wo findet diese Neugestaltung des Hintergrunds statt und was kann ich tun, um sie zu beeinflussen? Ich bin überrascht, weil mein Benutzercode die Malmethode des Delegaten überschreibt und nur Linien zeichnet.
Meine Malmethode
Code: Select all
def paint(self, painter, option, index):
data = index.data(UserRole+1)
rectF = option.rect.toRectF()
ndims = self.ndims
yscale = self.yscale
midHeight = rectF.top() + rectF.height()/2
ctrLine = QtCore.QLineF( rectF.left(), midHeight,
rectF.right(), midHeight )
painter.setPen( self.midPen )
painter.drawLine( ctrLine )
painter.setPen( self.linePen )
segWidth = rectF.width() / (ndims-1)
for s in range(ndims-1):
seg = data[s:s+2]
segProj = -seg / yscale * rectF.height()
segLine = QtCore.QLineF( rectF.left() + s*segWidth,
midHeight + segProj[0],
rectF.left() + (s+1)*segWidth,
midHeight + segProj[1] )
painter.drawLine( segLine )