内容提要
介绍了一款名为Sunny的截图软件,支持截图、钉图、图片翻译和OCR等功能,适用于Windows、MacOS和Linux平台。已上架微软商店和Linux应用商城。作者分享了开发过程中的问题和解决方案。
延伸解读
跨平台支持的实际覆盖范围
Sunny 已验证可在 Windows 7/10/11+、Ubuntu 22.04+、Deepin/UOS V20、openkylin 1.0 以及 MacOS 10.14 至 14+ 上运行。这意味着它覆盖了主流桌面系统,包括国产 Linux 发行版。但需注意,MacOS 上仅支持单屏截图,无法像 Windows 和 Linux 那样一次截取多个屏幕,这是系统接口限制所致。
从练手到商业级的开发路径
作者通过三个项目逐步提升:ShotX 是新手级截图工具,FLIPPED 是功能完整的高级作品,Sunny 则是商业级成熟之作。Sunny 重构了 FLIPPED 的功能、代码和 UI,并增加了图片翻译、OCR 和商店上架。这种迭代方式表明,复杂软件往往需要从简单项目积累经验,逐步扩展功能和优化架构。
技术难点与解决方案
开发中遇到多个挑战:亚克力效果在 Linux 和 MacOS 上的跨平台实现、无边框窗口的跨平台兼容、国际化不重启切换语言、ESC 取消截图后的内存释放、单例运行保证等。作者分享了具体方案,如使用 framelesshelper 处理无边框窗口,通过全局单例和信号槽实现语言切换,利用 QSharedMemory 和 QSystemSemaphore 确保单例运行。这些经验对 Qt/C++ 开发者有参考价值。
下载增长与维护承诺
Sunny 发布后未主动宣传,但被知名软件网站推荐后流量激增,下载量从 900+ 迅速增长至 1.8k。作者承诺从 2023 年起至少持续开发和维护十年,并已上架 Microsoft Store、深度/统信商店和星火商店。对于用户而言,这意味着软件有长期支持保障,可放心使用。
Q&A
Sunny截图软件支持哪些操作系统?
Sunny支持Windows 7/10/11+、Ubuntu 22.04+、Deepin/UOS V20、openkylin 1.0以及MacOS 10.14/11/12/13/14+。
Sunny有哪些特色功能?
Sunny的特色功能包括截图与钉图、图片翻译(支持中/英/日/韩/俄等)、OCR提取文字、窗口属性自动检测、代码签名,以及亚克力透明磨砂效果、自定义活动色、自定义边框和十字线宽度、绘画工具栏垂直/水平布局、钉图窗口阴影和透明度、多种系统风格等样式功能。
Sunny在哪些应用商店可以下载?
Sunny已上架Microsoft Store、Deepin/UOS Store、Spark Store(星火商店),openkylin Store(麒麟商店)正在上架审核中。
Sunny的开发背景和作者的其他截图作品有哪些?
Sunny是作者使用纯C++开发的一款截图软件,属于商业级成熟作品。作者还开发了新手级的ShotX和高级的FLIPPED,三者均支持跨平台。Sunny是FLIPPED的功能重构、代码重构、UI重构并增加了网络功能(图片翻译+OCR)和上架应用商店。
Sunny的快捷键有哪些?
Sunny的快捷键包括:F6窗口激活截图、Ctrl+F6仅延时截图、Shift+F6自定义截图、Esc退出截图、Tab切换检测子窗口矩形深度、`/~显示捕捉窗口属性信息、Ctrl+Shift+S快速保存到指定路径、方向键(或A/S/W/D)移动选中区域1px、Ctrl+方向键外扩选中区域10px、Shift+方向键内缩选中区域10px。
Sunny如何处理内存泄漏问题?
Sunny通过使用QPointer、智能指针或单例等方式,在完成一次截图后,内存占用会在合适时机自动释放,解决了使用ESC取消截图后的内存泄露问题。
Sunny是否需要管理员权限运行?
Sunny全程不会弹出UAC弹窗,不需要管理员权限即可使用所有功能,也不会中途提权,仅普通用户权限即可,包括导向安装、静默安装和使用卸载。
Sunny在MacOS上有什么限制?
MacOS上Sunny仅支持截图单个屏幕,无法像Windows和Linux那样一次截多个屏幕。这是因为苹果相关接口未公开,目前没有任何三方软件能做到多屏截图。