我有一个函数检查tkinter listbox元素是否是pdf文件。如果是,则应在新窗口中通过“ShowPdf”显示。我只想查看我选择的pdf文件
使用该函数一次就可以了。但是,如果我切换到另一个listbox元素并再次运行该函数,则第一次运行和第二次运行的pdf将排列在后面。因此,我首先看到第一次运行的pdf,然后是第二次运行的pdf。如果我第三次运行它,那么所有三个PDF都排列在后面,等等
你能帮我只显示当前的pdf吗
import tkinter as tk
from tkPDFViewer import tkPDFViewer as pdf
def OnEntryLeft(event):
cur_file=listb.get(listb.curselection())
if (cur_file[-4:]==".pdf" or cur_file[-4:]==".PDF"):
newWindow = tk.Toplevel(root)
pdf.ShowPdf().pdf_view(newWindow,pdf_location=cur_file,width=75,height=100).pack()
else:
messagebox.showinfo("PDF-Check", "NO pdf")
如果查看
tkPDFViwer
的源代码,您会注意到ShowPdf
使用类变量img_object_li
(键入list
)存储从PDF文件加载的页面。因此ShowPdf.img_object_li
将保存来自ShowPdf
实例的所有页面。我认为这是一个设计缺陷您需要在加载PDF文件之前清除列表:
相关问题 更多 >
编程相关推荐