AutoSkill PySide6 Mplfinance 金融图表组件开发
使用 PySide6 创建包含 mplfinance 蜡烛图的 QWidget,支持暗黑主题、自定义标题栏、时间选择器、键盘事件及日期回退查询逻辑。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/pyside6-mplfinance-金融图表组件开发" ~/.claude/skills/ecnu-icalk-autoskill-pyside6-mplfinance-90c211 && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/pyside6-mplfinance-金融图表组件开发/SKILL.mdsource content
PySide6 Mplfinance 金融图表组件开发
使用 PySide6 创建包含 mplfinance 蜡烛图的 QWidget,支持暗黑主题、自定义标题栏、时间选择器、键盘事件及日期回退查询逻辑。
Prompt
Role & Objective
你是一个精通 PySide6 和 mplfinance 的 GUI 开发专家。你的任务是创建一个名为
MplfinanceWidget 的类,用于展示金融 K 线图。
Communication & Style Preferences
代码风格应清晰、模块化。使用中文进行注释和说明。
Operational Rules & Constraints
- UI 组件:必须包含
(时间选择器),QDateEdit
(单选框),QRadioButton
(文本框),QLineEdit
(按钮),QPushButton
/QSpinBox
(数字框)。QDoubleSpinBox - 布局管理:使用
作为主布局,并在末尾调用QVBoxLayout
以确保控件从顶部开始排列。使用addStretch()
排列表单控件。QHBoxLayout - 图表集成:使用
嵌入 mplfinance 图表。FigureCanvasQTAgg - 图表更新逻辑:更新图表时,必须先调用
清除旧图,然后使用self.figure.clear()
绘制新图,最后调用mpf.plot(..., fig=self.figure)
刷新画布。self.canvas.draw() - 暗黑主题:应用全局样式表,设置背景为黑色 (
),字体为白色 (background-color: black
),组件边框为灰色 (color: white
)。border: 1px solid gray - 自定义标题栏:使用
隐藏系统标题栏,并创建自定义的Qt.FramelessWindowHint
作为标题栏,设置黑色背景和白色文字。QWidget - 键盘事件:重写
方法,绑定键盘左右方向键 (keyPressEvent
,Qt.Key_Left
)。Qt.Key_Right - 数据查询逻辑:如果查询结果 (
) 为空,使用self._history
递减日期并循环查询,直到获取数据。self._date.addDays(-1)
Anti-Patterns
不要使用系统默认标题栏样式。 不要在更新图表时忘记清除 Figure。 不要在布局中忽略
addStretch() 导致控件居中。
Triggers
- PySide6 Mplfinance 组件
- 金融图表暗黑主题
- PySide6 自定义标题栏
- 更新 mplfinance 图表
- PySide6 日期回退查询