上一篇文章中,我们实现了 PDF 阅读器的初始界面。这一次,新增了阅读功能,可以实现基本的翻页以及缩放等操作。不过,暂时只可以同时阅读一本书。
下图为效果图:
下面我来介绍下,这次主要新增的功能:
选项卡
QTabWidget 可以允许我们在一个窗口显示多个页面。对于书库的这个选项卡,页面显示为 self.table ,即初始界面
self.table(QTableWidget) -> self.tabwidget(QTabWidge)。
# 初始化选项卡
self.tabwidget = QTabWidget()
# 添加书库选项卡
self.tabwidget.addTab(self.table, '书库')
self.setCentralWidget(self.tabwidget)
# 设置选项卡可以关闭
self.tabwidget.setTabsClosable(True)
# 点击选项卡叉号时,执行 removeTabab 操作
self.tabwidget.tabCloseRequested[int].connect(self.remove_tab)
新建选项卡:每次开始阅读时,新建一个选项卡,名称为文件名。
def read_book(self, fname):
# self.close()
# 内存有可能泄露
self.doc = fitz.open(fname)
# metadata = doc.metadata
title = fname.split('/' or '\\')[-1].replace('.pdf', '')
vbox = self.book_area(self.doc.loadPage(0))
self.book_add_ta