首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在弹出窗口上打开pdf文件?

如何在弹出窗口上打开pdf文件?
EN

Stack Overflow用户
提问于 2022-10-08 19:42:55
回答 1查看 67关注 0票数 -1

我用tkinter制作了一个pdf查看器。我想知道我是否可以让pdf文件‘弹出’使用Toplevel()功能。我尝试使用lambda来尝试在使用按钮时合并Toplevel(),但是弹出窗口没有反映任何内容。下面是我编写的代码:

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from tkPDFViewer import tkPDFViewer as pdf
import os 

#make tk case
root = Tk() 
root.geometry("1000x700+200+100")
root.title("PDF Viewer")
root.configure(bg="light blue")  

#view frame
view_frame=Frame(root, bg="light blue", bd=5, width=400)
view_frame.pack(side=LEFT)  

#to generate pop up window to view PDFs  
def popup(filename):  
    win=Toplevel()  
    win.geometry("100x80")  
    win.title(filename)  
    

v2=None 
file = ''
#search for files
def viewpdf():
#make v2 global
    global v2

    filename=filedialog.askopenfilename(initialdir=os.getcwd(),
                                        title="Select PDF File",
                                        filetype=(("PDF File", ".pdf"),
                                                  ("PDF File", ".PDF"),
                                                  ("All File",".txt")))

    if filename:
        global file
        file=filename
        #destroy old file if it exists
        if v2:
            v2.destroy()
        #create new pdf images  
        v1=pdf.ShowPdf()
        #clear stored images
        v1.img_object_li.clear()
        #store new images
        v2=v1.pdf_view(view_frame, pdf_location=open(filename,"r"),height=50, width=80)
        v2.pack(pady=(0,0))

#set buttons
view_button=Button(view_frame, text='SEARCH FOR FILES', command=lambda: [viewpdf(), popup(file)], width=50, bd=5)
view_button.pack()  

root.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-10 17:57:12

更新:我尝试过在tkinter.TopLevel()中添加def viewpdf(),它成功了!我也删除了def popup()

代码语言:javascript
复制
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from tkPDFViewer import tkPDFViewer as pdf
import os 

#make tk case
root = Tk() 
root.geometry("1000x700+200+100")
root.title("PDF Viewer")
root.configure(bg="light blue")  

#view frame
view_frame=Frame(root, bg="light blue", bd=5, width=400)
view_frame.pack(side=LEFT)  


v2 = None
#search for files
def viewpdf():
    #make v2 global
    global v2

    filename=filedialog.askopenfilename(initialdir=os.getcwd(),
                                        title="Select PDF File",
                                        filetype=(("PDF File", ".pdf"),
                                                  ("PDF File", ".PDF"),
                                              ("All File",".txt")))

    if filename:
        
        #destroy old file if it exists
        if v2:
            v2.destroy()
        #create new pdf images  
        v1=pdf.ShowPdf()
        #clear stored images
        v1.img_object_li.clear()
        #set a new pop out window
        newWindow=tkinter.Toplevel(view_frame)
        #store new images
        v2=v1.pdf_view(newWindow, pdf_location=filename, height=50, width=80)
        v2.pack(pady=(0,0))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74000066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档