500 行代码实现 PDF 阅读器

本文介绍了如何使用500行代码实现一个基本的PDF阅读器PyReadon,具备添加、删除书籍,阅读,保存记录和查看书籍信息等功能。通过优化数据结构,支持同时阅读多本书,利用sqlite3数据库保存书库信息,并实现了鼠标左键翻页操作。源代码已上传至作者的Github。
摘要由CSDN通过智能技术生成

500 行代码实现 PDF 阅读器

经过两周的迭代,现在我们的 PyReadon 已经具备一般的 PDF 阅读器的基本功能:

  • 添加书籍
  • 删除书籍
  • 阅读书籍
  • 保存记录
  • 查看书籍信息

前几版相比较,这一版优化了书籍的数据结构,支持同时阅读多本书,支持鼠标左键翻页,并通过与 sqlite3 数据库的交互来保存书库以及书籍信息(地址、页数等)。

在这里插入图片描述

书籍

在这里插入图片描述

使用 Book 类来保存书籍信息,比如元数据、页数以及阅读与否的信息。通过 __eq__ 特殊方法,来判断两个 book 实例是否为同一对象。

class Book:
    def __init__(self, fname):
        # 文件名
        self.fname = fname
        # 是否被阅读
        self.flag = None
        self._info = None
        self._page = 0
        self.get_meta_data(self.fname)
        
    def __eq__(self, other):
        if hasattr(other, 'fname'):
            return self.fname == other.fname
        return False        
同时阅读

在这里插入图片描述

通过内部维护一个 read_list 列表来实现同时阅读多本书。列表储存 book 对象,每个 book 对象都有一个 pa

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值