Expose numeric trend segment formulas from native reconstruction models

This commit is contained in:
2026-09-27 03:13:39 +03:00
parent de4609ea00
commit f3937eaf14
7 changed files with 203 additions and 4 deletions

View File

@@ -0,0 +1,28 @@
"""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()