- 0
- 98 words
盯盘或写材料的时候,最烦的不是「没有新闻」,而是新闻太散:财联社、新浪、华尔街见闻、36氪各开一页,刷新成本比阅读还高。
于是我给自己做了个很小的工具——财经 Tip:Windows 上一个置顶浮窗 + 系统托盘,把近一天公开财经要闻聚到屏幕角落,需要时扫一眼,不需要就藏起来。
声明:仅作资讯速览与个人工具实践,不构成投资建议。依赖外网公开源,个别源失败不影响其余源。
它解决什么问题
- 不想为了扫要闻再开一堆浏览器标签
- 希望重要电报、关键词命中能托盘提醒,而不是一直盯着列表
- 要轻:无边框浮窗、不进任务栏、可开机自启、单文件 exe 双击就跑
形态上更接近「桌面小组件」,而不是又一个资讯 App。
功能一览
信息
- 默认源:财联社电报、新浪财经、华尔街见闻、36氪(可在配置里增删)
- 时间窗口默认近 24 小时,列表有上限(如 80 条),按时间排序
- 财联社侧带「重要」标(推荐/推送等信号);可一键「仅看重要」
- 自定义关键词:标题/正文命中高亮;重要增量、关键词命中可托盘通知
- 点条目看摘要,详情可打开原文
交互
- 无系统标题栏、圆角浮窗,可拖动、可置顶
- 启动可锚到屏幕四角(默认右下)
- - 隐藏到托盘(隐藏时暂停自动轮询)
- × 真正退出
- 不进任务栏,只留托盘:显示 / 隐藏 / 刷新 / 退出
- 右键改:仅看重要、字号、置顶、锚点、自动刷新、通知、关键词等
数据落盘
- 用户偏好与缓存:
%APPDATA%\StockNewsTip\(settings.yaml、last_news.json) - 仓库里的
config.yaml只当默认,日常改动不污染仓库
刷新为什么「第一次慢、之后快」
冷启动会拉多源,保证列表完整。
之后再点刷新,以财联社增量为主,再和本地缓存合并。
原因很现实:个别 RSS 偶发超时,全量硬刷会把「点一下」变成干等十几秒。增量 + 缓存之后,日常刷新轻很多,隐藏到托盘时也不空转请求。
技术选型(刻意简单)
| 部分 | 选型 |
|---|---|
| UI | CustomTkinter |
| 托盘 | pystray |
| 拉源 | httpx + feedparser 等 |
| 分发 | PyInstaller 单文件 StockNewsTip.exe |
没有做成 Web、也没有上 Electron:Windows 桌面小窗场景里,这套依赖少、打包体积可控(大约二十来 MB 量级),改起来也快。
无边框圆角有个坑值得记:根窗用透明色抠边时,顶栏不要再单独画一个四边都圆的色块,否则外壳直角底色会露出来,像胶囊浮在黑色方底上。更稳的做法是:外壳一体圆角承色,顶栏透明只放控件,内容区内缩。
怎么用
开发运行
cd stock_news
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
.\run.ps1
打包成 exe
cd stock_news
.\build.ps1
生成 dist\StockNewsTip.exe,双击即可;偏好与缓存仍在 %APPDATA%\StockNewsTip\。
需要开机自启:给 exe 建快捷方式,放进「启动」文件夹。
常用配置(默认 config.yaml,可被用户目录覆盖)
| 字段 | 说明 |
|---|---|
hours | 时间窗口,默认 24 |
max_items | 列表最多条数 |
keywords | 关键词(也可右键编辑) |
ui.auto_poll_sec | 自动刷新秒数,0 关闭 |
ui.notify_important / ui.notify_keywords | 托盘通知开关 |
window.anchor | right_bottom 等 |
rss_feeds | 源列表,kind 支持 cls_telegraph / sina_roll / rss |
无界面试拉新闻:
.\.venv\Scripts\python.exe -m app.news
适合谁
- 需要屏幕角落常驻财经速览,又讨厌再开网页
- 想自己改源、改关键词、改刷新策略
- 只要资讯,不要行情、不要下单
不适合:要 Level-2、要交易闭环、要账号同步云端的场景——这工具明确不做。
财经 Tip 的目标很窄:少打断,把近一天公开要闻摆到眼前。
重要标、关键词、托盘通知、隐藏暂停轮询——都是为了「用得轻」,而不是功能堆满。
对我来说,右下角一个浮窗、托盘一个小图标,刷新一下继续干活,就够了。信息到眼前,决策仍是自己的事。
执行体: http://1.14.75.47/wp-content/uploads/dlm_uploads/2026/07/StockNewsTip-1.7z
