Skip to content

Mountorm/TextPin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TextPin 2.0 - 智能贴卡工具

轻量级 Windows 桌面剪贴板贴卡工具 - 让文字随处可见

Python PyQt6 License Version


💡 什么是 TextPin?

TextPin 是一款极简高效的剪贴板贴卡工具,专为需要频繁处理文字的用户设计:

  • 📌 一键贴卡 - F4 快捷键瞬间创建悬浮文字卡片
  • 🎯 智能过滤 - 自动识别并过滤贴卡内部复制操作
  • 📝 随处编辑 - 贴卡内容可自由编辑、复制、搜索
  • 🎨 自由定制 - 位置、大小、透明度、字体完全可控
  • 💾 历史记录 - 自动保存剪贴板历史,随时调用

✨ 核心功能

🎯 贴卡管理

  • 全局快捷键 - F4(可自定义)一键创建贴卡
  • 智能定位 - 贴卡自动出现在鼠标位置附近
  • 自动高度 - 根据内容自动调整贴卡高度
  • 多贴卡支持 - 同时创建多个贴卡,自动偏移避免重叠
  • 拖动调整 - 自由拖动位置,任意调整大小
  • 透明度控制 - 可调整贴卡透明度,不遮挡视线

📋 剪贴板监听

  • 自动监听 - 自动捕获剪贴板文字并保存到历史
  • 智能过滤 - 忽略贴卡内部复制操作,避免重复记录
  • 实时同步 - 历史记录实时更新显示
  • 去重保存 - 自动过滤重复内容

📝 文本编辑

  • 完整编辑器 - 支持复制、粘贴、剪切、全选
  • 搜索替换 - 统一的查找替换对话框
  • 右键菜单 - 快速访问常用操作
  • 一键复制 - 点击按钮复制全部内容

🎨 外观定制

  • 尺寸设置 - 自定义默认宽度和高度
  • 字体设置 - 自定义字体大小和颜色
  • 背景颜色 - 自定义贴卡背景色
  • 透明度 - 调整贴卡透明度
  • 实时预览 - 设置立即应用到现有贴卡

💾 历史管理

  • 自动保存 - 剪贴板内容自动保存到历史
  • 实时更新 - 设置窗口实时显示最新历史
  • 快速加载 - 双击历史记录创建贴卡
  • 批量管理 - 可删除单条或清空全部历史

🚀 快速开始

环境要求

  • Windows 10 或更高版本
  • Python 3.10 或更高版本

安装步骤

  1. 克隆或下载项目
cd textPin
  1. 安装依赖
pip install -r requirements.txt
  1. 运行应用
python main.py

📖 使用指南

基本操作

1. 创建贴卡

方法一:使用快捷键(推荐)

  1. 在任意应用中复制文字(Ctrl+C)
  2. F4
  3. 贴卡自动出现在鼠标位置

方法二:从历史记录

  1. 点击托盘图标打开设置窗口
  2. 切换到"历史记录"标签
  3. 双击任意历史记录创建贴卡

2. 编辑贴卡

基本编辑

  • 直接在贴卡中编辑文字
  • Ctrl+C - 复制选中文字
  • Ctrl+V - 粘贴文字
  • Ctrl+X - 剪切选中文字
  • Ctrl+A - 全选
  • 点击"复制"按钮 - 复制全部内容

查找替换

  • Ctrl+F - 打开查找对话框
  • Ctrl+H - 打开替换对话框
  • 支持:区分大小写、全词匹配、正则表达式

右键菜单

  • 复制、粘贴、剪切、全选
  • 查找、替换
  • 关闭贴卡

3. 调整贴卡

移动贴卡

  • 鼠标拖动贴卡上边缘(20px 区域)

调整大小

  • 拖动贴卡四周边缘和四个角
  • 或在设置中配置默认尺寸

关闭贴卡

  • 点击右上角 ❌ 按钮
  • 或按 Alt+F4

4. 配置设置

打开设置

  • 点击系统托盘图标
  • 或右键贴卡 → 设置(计划中)

常规设置

  • 自动监听剪贴板 - 是否自动保存剪贴板内容到历史
  • 忽略自身复制 - 是否过滤贴卡内部的复制操作
  • 最大历史数量 - 保存的历史记录上限
  • 创建贴卡快捷键 - 自定义全局快捷键

贴卡设置

  • 默认宽度/高度 - 新贴卡的初始尺寸
  • 自动高度 - 根据内容自动调整高度
  • 透明度 - 贴卡透明度(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 - 设置值

🐛 故障排除

问题:F4 快捷键不响应

可能原因

  • 快捷键被其他程序占用
  • 需要管理员权限

解决方案

  1. 在设置中更换其他快捷键
  2. 以管理员身份运行程序
  3. 检查其他程序的快捷键冲突

问题:历史记录不更新

可能原因

  • 关闭了"自动监听剪贴板"
  • 开启了"忽略自身复制"且在贴卡内复制

解决方案

  1. 确保在设置中勾选了"自动监听剪贴板"
  2. 检查"忽略自身复制"设置
  3. 重启应用程序

问题:贴卡位置不对

解决方案

  • 贴卡会在鼠标位置附近创建(偏移 1px)
  • 多个贴卡会自动错开(每个偏移 25px)
  • 可以拖动贴卡到任意位置

问题:数据库错误

可能原因

  • 数据库文件损坏
  • 磁盘空间不足

解决方案

  1. 备份 textpin.db 文件
  2. 删除数据库文件,重新启动程序
  3. 检查磁盘空间

📝 版本历史与规划

v2.0.0(当前版本)✅

核心功能

  • 悬浮贴卡窗口系统
  • 全局快捷键(F4 创建贴卡)
  • 剪贴板自动监听与历史记录
  • 智能过滤贴卡内部复制
  • 自动高度调整
  • 贴卡拖动和调整大小
  • 查找替换功能
  • 实时配置应用
  • 系统托盘支持

数据管理

  • SQLite 数据存储
  • 历史记录去重
  • 实时历史更新
  • 配置文件管理

v2.1.0(下一版本)🚧

UI/UX 改进

  • 深色主题支持
  • 贴卡模板系统(预设配色方案)
  • 贴卡右键菜单增强
  • 动画效果(淡入淡出)
  • 贴卡吸附功能

功能增强

  • 贴卡分组管理
  • 贴卡标签/分类
  • 快速笔记功能
  • 文本处理工具(大小写、去空格等)
  • 历史记录收藏功能

v3.0.0(长期计划)🔮

高级功能

  • 多显示器支持优化
  • 贴卡导出为图片
  • Markdown 渲染支持
  • 代码高亮显示
  • OCR 图片识别(可选)

跨平台

  • macOS 版本
  • Linux 版本
  • 云同步功能

扩展性

  • 插件系统
  • API 接口
  • 自定义脚本支持

🤝 贡献

欢迎提交Issue和Pull Request!


📄 许可证

MIT License


👨‍💻 作者

TextPin Development Team


🙏 致谢

  • PyQt6 - 强大的GUI框架
  • SQLite - 轻量级数据库
  • Python 社区的所有贡献者

享受使用 TextPin!如有问题或建议,欢迎反馈。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published