Agent Skills
返回列表
股价展示程序生成

股价展示程序生成

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_c641d7bd/windows-taskbar-widget。

技能介绍

要解决的问题

Windows 桌面上常驻看盘,一直缺一个顺手的方案。用 tkinter 写个窗口很简单,但默认窗口带标题栏、居中显示,既占空间又无法像系统组件一样常驻;而系统托盘又放不下足够的行情信息。这个技能要解决的就是:做一个紧凑的无边框置顶窗口,精确停靠在任务栏上方,同时保留一个托盘图标,鼠标移开后桌面依旧干净。

核心能力与关键步骤

  • 浮窗构建:tkinter 去掉标题栏(overrideredirect(True))并置顶(attributes("-topmost", True)),得到一个紧凑的信息条。
  • 任务栏上方定位:用 ctypes 调用 Windows API 读取任务栏高度,把窗口摆到屏幕右下角、任务栏正上方,而不是凭感觉写死坐标。
  • 交互层:支持拖拽移动、右键菜单(含设置入口)、Toplevel 设置弹窗编辑股票代码。
  • 系统托盘:pystray + Pillow 动态绘制价格图标,在独立线程运行;数据刷新时同步重绘图标。
  • 数据与配置:requests 轮询新浪财经 API 拉取行情,股票代码按 6xxxxx/9xxxxx → sh、其余 → sz 规则补全前缀;配置存为 exe 同目录的 JSON 文件。
  • 打包:PyInstaller --noconsole 输出单个 exe,双击即用。

Toplevel 弹窗是踩坑重灾区,模板里定了几条硬规则:显式 dlg.attributes("-alpha", 1.0) 覆盖继承来的透明度,防止背景透视;用 self._settings_dlg 守卫变量避免弹窗层叠;弹窗不能用 overrideredirect(True),否则 Entry 直接收不到键盘输入;focus_force 必须放在 dlg.after(200, ...) 里延迟调用;菜单打开弹窗要用 root.after(150, callback) 等右键菜单完全关闭。

适用边界与注意点

  • 仅适用于 Windows:任务栏高度、置顶停靠都依赖 ctypes 调用 Win API。
  • 依赖 Python 3.10+ 及 pystray、Pillow、requests、PyInstaller,打包时务必加 --noconsole 隐藏控制台。
  • 行情源为新浪财经,代码前缀规则只覆盖 A 股常见格式;接口变动时需要自行适配。
  • 完整可运行模板见 reference_template.py,上述规则在模板中均有对应实现。

使用场景

  • 盯盘时想要一个常驻桌面角落的实时行情条,把浮窗停靠在 Windows 任务栏上方,并配合托盘图标保持桌面整洁。
  • 接到自己维护的行情接口时,改 HTTP 请求路径和字段解析逻辑,让浮窗展示该接口的实时数据。
  • 需要把组件打包成单个 exe 交给不装 Python 的同事使用,同时隐藏控制台窗口。
  • 在既有工具里扩展代码支持,按上海、深圳前缀规则补全股票代码后展示对应品种。

适合人员

  • 喜欢把桌面整理得干净、希望看盘时浮窗停靠任务栏上方、离开桌面后托盘图标常驻的 Windows 用户。
  • 在 Windows 上做桌面小工具的开发者,想直接复用无边框置顶窗口、系统托盘和配置持久化的整套写法。
  • 给交易团队写内部工具的人,需要把行情浮窗和数据刷新逻辑打包成 exe 分发给非技术同事。
  • 正在 tkinter 上做自定义组件的开发者,想获取设置弹窗、拖拽和配置保存的完整踩坑方案。