Make axes labels more pixel perfect
							parent
							
								
									e4bf3a5fe4
								
							
						
					
					
						commit
						d600a2ca70
					
				| 
						 | 
				
			
			@ -287,6 +287,8 @@ class AxisLabel(pg.GraphicsObject):
 | 
			
		|||
        self.path = None
 | 
			
		||||
        self.rect = None
 | 
			
		||||
 | 
			
		||||
        self._pw = self.pixelWidth()
 | 
			
		||||
 | 
			
		||||
    def paint(
 | 
			
		||||
        self,
 | 
			
		||||
        p: QtGui.QPainter,
 | 
			
		||||
| 
						 | 
				
			
			@ -419,6 +421,7 @@ class XAxisLabel(AxisLabel):
 | 
			
		|||
        abs_pos: QPointF,  # scene coords
 | 
			
		||||
        value: float,  # data for text
 | 
			
		||||
        offset: int = 0  # if have margins, k?
 | 
			
		||||
 | 
			
		||||
    ) -> None:
 | 
			
		||||
 | 
			
		||||
        timestrs = self._parent._indexes_to_timestrs([int(value)])
 | 
			
		||||
| 
						 | 
				
			
			@ -433,17 +436,19 @@ class XAxisLabel(AxisLabel):
 | 
			
		|||
 | 
			
		||||
        w = self.boundingRect().width()
 | 
			
		||||
 | 
			
		||||
        self.setPos(QPointF(
 | 
			
		||||
            abs_pos.x() - w/2,
 | 
			
		||||
        self.setPos(
 | 
			
		||||
            QPointF(
 | 
			
		||||
                abs_pos.x() - w/2 - self._pw,
 | 
			
		||||
                y_offset/2,
 | 
			
		||||
        ))
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
        self.update()
 | 
			
		||||
 | 
			
		||||
    def _draw_arrow_path(self):
 | 
			
		||||
        y_offset = self._parent.style['tickTextOffset'][1]
 | 
			
		||||
        path = QtGui.QPainterPath()
 | 
			
		||||
        h, w = self.rect.height(), self.rect.width()
 | 
			
		||||
        middle = w/2 - 0.5
 | 
			
		||||
        middle = w/2 - self._pw * 0.5
 | 
			
		||||
        aw = h/2
 | 
			
		||||
        left = middle - aw
 | 
			
		||||
        right = middle + aw
 | 
			
		||||
| 
						 | 
				
			
			@ -513,10 +518,12 @@ class YAxisLabel(AxisLabel):
 | 
			
		|||
        br = self.boundingRect()
 | 
			
		||||
        h = br.height()
 | 
			
		||||
 | 
			
		||||
        self.setPos(QPointF(
 | 
			
		||||
        self.setPos(
 | 
			
		||||
            QPointF(
 | 
			
		||||
                x_offset,
 | 
			
		||||
            abs_pos.y() - h / 2 - self._y_margin / 2
 | 
			
		||||
        ))
 | 
			
		||||
                abs_pos.y() - h / 2 - self._pw,
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
        self.update()
 | 
			
		||||
 | 
			
		||||
    def update_on_resize(self, vr, r):
 | 
			
		||||
| 
						 | 
				
			
			@ -553,7 +560,7 @@ class YAxisLabel(AxisLabel):
 | 
			
		|||
        path = QtGui.QPainterPath()
 | 
			
		||||
        h = self.rect.height()
 | 
			
		||||
        path.moveTo(0, 0)
 | 
			
		||||
        path.lineTo(-x_offset - h/4, h/2.)
 | 
			
		||||
        path.lineTo(-x_offset - h/4, h/2. - self._pw/2)
 | 
			
		||||
        path.lineTo(0, h)
 | 
			
		||||
        path.closeSubpath()
 | 
			
		||||
        self.path = path
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue