Files
sanguo_vnpy_v2/vnpy_v4.4.0/vnpy/chart/axis.py
T
claude_dev 3fbe6c9be5 feat: 纳入 VeighNa 4.4.0 上游源码作为版本参考
- 添加 vnpy_v4.4.0/ 目录到版本控制
- 删除嵌入的 .git 目录避免嵌套仓库
- 添加 README_SANGUO.md 说明来源和用途
- 更新 .gitignore 移除 vnpy_v4.4.0/ 忽略规则

上游代码信息:
- 项目: VeighNa 量化交易平台
- 版本: 4.4.0
- 来源: https://github.com/vnpy/vnpy

用途: 版本参考、代码学习、差异对比、离线开发

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 21:40:21 +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