TextPin 是一款极简高效的剪贴板贴卡工具,专为需要频繁处理文字的用户设计:
- 📌 一键贴卡 - F4 快捷键瞬间创建悬浮文字卡片
- 🎯 智能过滤 - 自动识别并过滤贴卡内部复制操作
- 📝 随处编辑 - 贴卡内容可自由编辑、复制、搜索
- 🎨 自由定制 - 位置、大小、透明度、字体完全可控
- 💾 历史记录 - 自动保存剪贴板历史,随时调用
- ✅ 全局快捷键 - F4(可自定义)一键创建贴卡
- ✅ 智能定位 - 贴卡自动出现在鼠标位置附近
- ✅ 自动高度 - 根据内容自动调整贴卡高度
- ✅ 多贴卡支持 - 同时创建多个贴卡,自动偏移避免重叠
- ✅ 拖动调整 - 自由拖动位置,任意调整大小
- ✅ 透明度控制 - 可调整贴卡透明度,不遮挡视线
- ✅ 自动监听 - 自动捕获剪贴板文字并保存到历史
- ✅ 智能过滤 - 忽略贴卡内部复制操作,避免重复记录
- ✅ 实时同步 - 历史记录实时更新显示
- ✅ 去重保存 - 自动过滤重复内容
- ✅ 完整编辑器 - 支持复制、粘贴、剪切、全选
- ✅ 搜索替换 - 统一的查找替换对话框
- ✅ 右键菜单 - 快速访问常用操作
- ✅ 一键复制 - 点击按钮复制全部内容
- ✅ 尺寸设置 - 自定义默认宽度和高度
- ✅ 字体设置 - 自定义字体大小和颜色
- ✅ 背景颜色 - 自定义贴卡背景色
- ✅ 透明度 - 调整贴卡透明度
- ✅ 实时预览 - 设置立即应用到现有贴卡
- ✅ 自动保存 - 剪贴板内容自动保存到历史
- ✅ 实时更新 - 设置窗口实时显示最新历史
- ✅ 快速加载 - 双击历史记录创建贴卡
- ✅ 批量管理 - 可删除单条或清空全部历史
- Windows 10 或更高版本
- Python 3.10 或更高版本
- 克隆或下载项目
cd textPin
- 安装依赖
pip install -r requirements.txt
- 运行应用
python main.py
方法一:使用快捷键(推荐)
- 在任意应用中复制文字(Ctrl+C)
- 按 F4 键
- 贴卡自动出现在鼠标位置
方法二:从历史记录
- 点击托盘图标打开设置窗口
- 切换到"历史记录"标签
- 双击任意历史记录创建贴卡
基本编辑
- 直接在贴卡中编辑文字
Ctrl+C
- 复制选中文字Ctrl+V
- 粘贴文字Ctrl+X
- 剪切选中文字Ctrl+A
- 全选- 点击"复制"按钮 - 复制全部内容
查找替换
Ctrl+F
- 打开查找对话框Ctrl+H
- 打开替换对话框- 支持:区分大小写、全词匹配、正则表达式
右键菜单
- 复制、粘贴、剪切、全选
- 查找、替换
- 关闭贴卡
移动贴卡
- 鼠标拖动贴卡上边缘(20px 区域)
调整大小
- 拖动贴卡四周边缘和四个角
- 或在设置中配置默认尺寸
关闭贴卡
- 点击右上角 ❌ 按钮
- 或按 Alt+F4
打开设置
- 点击系统托盘图标
- 或右键贴卡 → 设置(计划中)
常规设置
- 自动监听剪贴板 - 是否自动保存剪贴板内容到历史
- 忽略自身复制 - 是否过滤贴卡内部的复制操作
- 最大历史数量 - 保存的历史记录上限
- 创建贴卡快捷键 - 自定义全局快捷键
贴卡设置
- 默认宽度/高度 - 新贴卡的初始尺寸
- 自动高度 - 根据内容自动调整高度
- 透明度 - 贴卡透明度(50-100%)
- 字体大小 - 文字字号(8-24pt)
- 字体颜色 - 文字颜色
- 背景颜色 - 贴卡背景色
历史记录
- 查看所有剪贴板历史
- 搜索历史内容
- 双击创建贴卡
- 删除单条或清空全部
快捷键 | 功能 | 说明 |
---|---|---|
F4 |
创建贴卡 | 可在设置中自定义 |
快捷键 | 功能 |
---|---|
Ctrl+C |
复制选中文字 |
Ctrl+V |
粘贴 |
Ctrl+X |
剪切 |
Ctrl+A |
全选 |
Ctrl+F |
查找 |
Ctrl+H |
替换 |
Alt+F4 |
关闭贴卡 |
textpin/
├── main.py # 应用入口
├── requirements.txt # Python依赖
├── config.json # 配置文件(自动生成)
├── textpin.db # SQLite数据库(自动生成)
├── PRD.md # 产品需求文档
├── README.md # 项目文档
│
├── core/ # 核心模块
│ ├── __init__.py
│ ├── app_manager.py # 应用管理器(核心控制)
│ ├── clipboard_monitor.py # 剪贴板监听
│ ├── hotkey_manager.py # 全局快捷键管理
│ └── storage.py # 数据存储(SQLite)
│
├── ui/ # UI模块
│ ├── __init__.py
│ ├── card_window.py # 贴卡窗口
│ ├── settings_window.py # 设置窗口
│ ├── hotkey_edit.py # 快捷键编辑控件
│ └── find_replace_dialog.py # 查找替换对话框
│
└── utils/ # 工具模块
├── __init__.py
└── config.py # 配置管理(JSON)
配置文件 config.json
在首次运行时自动创建,所有设置可在设置窗口中修改:
{
"clipboard": {
"auto_monitor": true, // 自动监听剪贴板
"ignore_self": true, // 忽略贴卡内部复制
"max_history": 50 // 最大历史记录数
},
"card": {
"default_width": 300, // 贴卡默认宽度
"default_height": 200, // 贴卡默认高度
"auto_height": false, // 自动调整高度
"opacity": 0.95, // 透明度(0.5-1.0)
"font_size": 10, // 字体大小
"font_color": "#000000", // 字体颜色
"bg_color": "#FFFFFF" // 背景颜色
},
"hotkey": {
"create_card": "F4" // 创建贴卡快捷键
},
"settings_window": {
"x": 100, // 设置窗口位置
"y": 100,
"width": 600,
"height": 500
}
}
应用使用SQLite数据库存储历史记录,数据库文件为 textpin.db
。
clipboard_history - 剪贴板历史表
id
- 主键content
- 文本内容content_hash
- 内容哈希(用于去重)timestamp
- 时间戳is_favorite
- 是否收藏char_count
- 字符数word_count
- 单词数
app_settings - 应用设置表
key
- 设置键value
- 设置值
可能原因:
- 快捷键被其他程序占用
- 需要管理员权限
解决方案:
- 在设置中更换其他快捷键
- 以管理员身份运行程序
- 检查其他程序的快捷键冲突
可能原因:
- 关闭了"自动监听剪贴板"
- 开启了"忽略自身复制"且在贴卡内复制
解决方案:
- 确保在设置中勾选了"自动监听剪贴板"
- 检查"忽略自身复制"设置
- 重启应用程序
解决方案:
- 贴卡会在鼠标位置附近创建(偏移 1px)
- 多个贴卡会自动错开(每个偏移 25px)
- 可以拖动贴卡到任意位置
可能原因:
- 数据库文件损坏
- 磁盘空间不足
解决方案:
- 备份
textpin.db
文件 - 删除数据库文件,重新启动程序
- 检查磁盘空间
核心功能
- 悬浮贴卡窗口系统
- 全局快捷键(F4 创建贴卡)
- 剪贴板自动监听与历史记录
- 智能过滤贴卡内部复制
- 自动高度调整
- 贴卡拖动和调整大小
- 查找替换功能
- 实时配置应用
- 系统托盘支持
数据管理
- SQLite 数据存储
- 历史记录去重
- 实时历史更新
- 配置文件管理
UI/UX 改进
- 深色主题支持
- 贴卡模板系统(预设配色方案)
- 贴卡右键菜单增强
- 动画效果(淡入淡出)
- 贴卡吸附功能
功能增强
- 贴卡分组管理
- 贴卡标签/分类
- 快速笔记功能
- 文本处理工具(大小写、去空格等)
- 历史记录收藏功能
高级功能
- 多显示器支持优化
- 贴卡导出为图片
- Markdown 渲染支持
- 代码高亮显示
- OCR 图片识别(可选)
跨平台
- macOS 版本
- Linux 版本
- 云同步功能
扩展性
- 插件系统
- API 接口
- 自定义脚本支持
欢迎提交Issue和Pull Request!
MIT License
TextPin Development Team
- PyQt6 - 强大的GUI框架
- SQLite - 轻量级数据库
- Python 社区的所有贡献者
享受使用 TextPin!如有问题或建议,欢迎反馈。