Files
cutThenThink/examples/browse_demo.py
congsh c4a77f8aa4 feat: 实现CutThenThink P0阶段核心功能
项目初始化
- 创建完整项目结构(src/, data/, docs/, examples/, tests/)
- 配置requirements.txt依赖
- 创建.gitignore

P0基础框架
- 数据库模型:Record模型,6种分类类型
- 配置管理:YAML配置,支持AI/OCR/云存储/UI配置
- OCR模块:PaddleOCR本地识别,支持云端扩展
- AI模块:支持OpenAI/Claude/通义/Ollama,6种分类
- 存储模块:完整CRUD,搜索,统计,导入导出
- 主窗口框架:侧边栏导航,米白配色方案
- 图片处理:截图/剪贴板/文件选择/图片预览
- 处理流程整合:OCR→AI→存储串联,Markdown展示,剪贴板复制
- 分类浏览:卡片网格展示,分类筛选,搜索,详情查看

技术栈
- PyQt6 + SQLAlchemy + PaddleOCR + OpenAI/Claude SDK
- 共47个Python文件,4000+行代码

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 18:21:31 +08:00

81 lines
2.0 KiB
Python

"""
浏览视图演示脚本
展示分类浏览功能的使用方法
"""
import sys
from pathlib import Path
# 添加项目路径
sys.path.insert(0, str(Path(__file__).parent.parent))
from PyQt6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PyQt6.QtCore import Qt
from src.models.database import init_database, get_db
from src.gui.widgets.browse_view import BrowseView
class BrowseDemoWindow(QMainWindow):
"""浏览视图演示窗口"""
def __init__(self):
super().__init__()
# 初始化数据库
db_path = "sqlite:////home/congsh/CodeSpace/ClaudeSpace/CutThenThink/data/cutnthink.db"
init_database(db_path)
self.setup_ui()
def setup_ui(self):
"""设置UI"""
self.setWindowTitle("CutThenThink - 分类浏览演示")
self.setMinimumSize(1000, 700)
self.resize(1200, 800)
# 创建中央组件
central_widget = QWidget()
self.setCentralWidget(central_widget)
# 布局
layout = QVBoxLayout(central_widget)
layout.setContentsMargins(0, 0, 0, 0)
layout.setSpacing(0)
# 创建浏览视图
self.browse_view = BrowseView()
layout.addWidget(self.browse_view)
# 连接信号
self.browse_view.record_modified.connect(self.on_record_modified)
self.browse_view.record_deleted.connect(self.on_record_deleted)
def on_record_modified(self, record_id: int):
"""记录被修改"""
print(f"记录 {record_id} 已被修改")
def on_record_deleted(self, record_id: int):
"""记录被删除"""
print(f"记录 {record_id} 已被删除")
def main():
"""主函数"""
# 创建应用
app = QApplication(sys.argv)
app.setApplicationName("CutThenThink")
app.setOrganizationName("CutThenThink")
# 创建并显示主窗口
window = BrowseDemoWindow()
window.show()
# 运行应用
sys.exit(app.exec())
if __name__ == "__main__":
main()