"""Small right-aligned mathematical annotations shared by Qt plots.""" try: from PySide6.QtCore import QRectF, Qt from PySide6.QtGui import QColor except ImportError: from PySide2.QtCore import QRectF, Qt from PySide2.QtGui import QColor def paint_formulas(painter, rect, entries): """Draw (color, text) entries in the right half, wrapping long formulas.""" painter.save() painter.setClipRect(rect) metrics = painter.fontMetrics() width = max(1., rect.width() * .48 - 12) top = rect.top() + 5 flags = int(Qt.AlignRight | Qt.AlignTop | Qt.TextWordWrap) for color, text in entries: box = QRectF(rect.right() - width - 6, top, width, max(1., rect.bottom() - top)) height = painter.boundingRect(box, flags, text).height() box.setHeight(height) painter.fillRect(box.adjusted(-3, -1, 3, 1), QColor('#0b1119')) painter.setPen(QColor(color)) painter.drawText(box, flags, text) top += height + metrics.height() * .4 if top >= rect.bottom(): break painter.restore()