# ScreenShot **Repository Path**: link4ron/ScreenShot ## Basic Information - **Project Name**: ScreenShot - **Description**: 基于python开发的截屏软件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-02 - **Last Updated**: 2026-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ScreenShot — 跨平台截屏标注工具 支持 **Windows**、**Linux**、**信创系统**(统信 UOS、银河麒麟等)的桌面截屏应用。 ## 功能 - **区域截屏**:快捷键框选任意区域 - **全屏截屏**:一键抓取虚拟桌面 - **图片标注**: - 拉箭头 - 画矩形 / 椭圆 / 直线 - 自由画笔 - 文字标注 - 马赛克 - **撤销 / 重做**、复制到剪贴板、保存为 PNG/JPEG - **系统托盘**常驻,双击托盘图标可快速截屏 ## 快捷键 全局截屏快捷键可在主窗口「全局快捷键」中修改,立即生效。 | 操作 | 默认快捷键 | |------|--------| | 区域截屏 | `Ctrl + Alt + A` | | 全屏截屏 | `Ctrl + Shift + F` | | 确认选区 | `Enter` 或双击 | | 取消选区 | `Esc` | | 撤销标注 | `Ctrl + Z` | | 重做标注 | `Ctrl + Y` | | 保存 | `Ctrl + S` | | 复制 | `Ctrl + C` | 标注工具快捷键:`A` 箭头 · `R` 矩形 · `E` 椭圆 · `L` 直线 · `P` 画笔 · `T` 文字 · `M` 马赛克 ## 环境要求 - Python 3.9+ - Windows 10/11,或 Linux / 信创桌面(X11 推荐;Wayland 下全局快捷键可能受限) ## 安装与运行 ```bash # 创建虚拟环境(推荐) python -m venv .venv # Windows .venv\Scripts\activate # Linux / 信创 source .venv/bin/activate pip install -r requirements.txt python main.py ``` ## 信创系统说明 1. 推荐使用系统自带的 Python3,或安装适配架构(x86_64 / aarch64 / loongarch64)的 Python。 2. 安装依赖:`pip3 install -r requirements.txt` 3. 若全局快捷键无效: - **统信 UOS / 深度**:在「控制中心 → 隐私与安全 → 辅助功能」中允许本程序 - **银河麒麟**:授予键盘监听 / 辅助功能权限 - 也可直接使用**系统托盘菜单**进行截屏 4. 若界面异常,可尝试:`export QT_QPA_PLATFORM=xcb` ## 打包为可执行文件 ```bash pip install pyinstaller pyinstaller build.spec ``` 生成文件位于 `dist/ScreenShot`(Linux)或 `dist/ScreenShot.exe`(Windows)。 在信创机器上请**在目标系统本机打包**,以保证 CPU 架构与系统库匹配。 ## 项目结构 ``` ScreenShot/ ├── main.py # 入口 ├── requirements.txt ├── build.spec # PyInstaller 打包配置 ├── app/ │ ├── config.py # 配置 │ ├── controller.py # 主控制器 │ ├── hotkey.py # 全局快捷键 │ ├── tray.py # 系统托盘 │ ├── capture/ # 截屏与区域选择 │ └── editor/ # 标注编辑(箭头/矩形等) └── .DevLog/ # 开发修改日志 ``` ## 技术栈 - **PySide6 (Qt6)**:跨平台 GUI,信创生态兼容性较好 - **pynput**:全局快捷键 - 屏幕抓取使用 Qt `QScreen.grabWindow`,适配多显示器与高分屏