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