项目初始化 - 创建完整项目结构(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>
81 lines
2.0 KiB
Python
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()
|