Files
2026-07-13 12:07:23 +08:00

45 lines
1.1 KiB
Python

from datetime import datetime
from typing import Any
import pyqtgraph as pg # type: ignore
from .manager import BarManager
from .base import AXIS_WIDTH, NORMAL_FONT, QtGui
class DatetimeAxis(pg.AxisItem):
""""""
def __init__(self, manager: BarManager, *args: Any, **kwargs: Any) -> None:
""""""
super().__init__(*args, **kwargs)
self._manager: BarManager = manager
self.setPen(width=AXIS_WIDTH)
self.tickFont: QtGui.QFont = NORMAL_FONT
def tickStrings(self, values: list[int], scale: float, spacing: int) -> list:
"""
Convert original index to datetime string.
"""
# Show no axis string if spacing smaller than 1
if spacing < 1:
return ["" for i in values]
strings: list = []
for ix in values:
dt: datetime | None = self._manager.get_datetime(ix)
if not dt:
s: str = ""
elif dt.hour:
s = dt.strftime("%Y-%m-%d\n%H:%M:%S")
else:
s = dt.strftime("%Y-%m-%d")
strings.append(s)
return strings