如何在python tkinter mainloop中定义列表而不更改其值

苏里亚·纳特

我试图制作一个使用PyPDF2拆分pdf的python程序因此,我必须定义一个列表以附加元素,但是当循环再次迭代时,列表的值将更改为空白列表。因此,该程序将制作一个没有任何内容的pdf文件。这是我的代码

import tkinter as tk
from PIL import Image, ImageTk
from PyPDF2 import PdfFileReader, PdfFileWriter
from tkinter import filedialog
from tkinter import messagebox
  
elements = []
root7 = tk.Tk()
root7.geometry("600x600")
root7.title("PDF Viewer")
root7.configure(bg="#202020")

    
image7 = Image.open("split.jpg")
new_img7 = image7.resize((600,400))
photo7 = ImageTk.PhotoImage(new_img7)


def open1():
    pdf = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("pdf files","*.pdf"),("all files","*.*")))
    elements.append(pdf)

    w = tk.Spinbox(root7, from_=0, to=100, width=3)
    w.place(x=150, y=510)
    elements.append(int(w.get()))

    w1 = tk.Spinbox(root7, from_=0, to=100, width=3)
    w1.place(x=409, y=510)
    elements.append(int(w1.get()))
    
def split():
    pdfs = PdfFileReader(elements[0], "rb")
    pdf_writer = PdfFileWriter()

    for page in range(elements[1], elements[2]):
        pdf_writer.addPage(pdfs.getPage(page))

    output_fname = "splitted.pdf"

    with open(output_fname, 'wb') as out:
        pdf_writer.write(out)

    messagebox.showinfo("Splitted","PDF Saved in Desktop as splitted.pdf")
    

lbl7 = tk.Label(root7,image=photo7)
lbl7.place(x=0, y=0)

button7 = tk.Button(root7, text= 'Open PDF', command=open1, bg="#B8B8B8")
button7.place(width=300, height=50, x=150, y=450)

button8 = tk.Button(root7, text= 'Split PDF', command=split, bg="#B8B8B8")
button8.place(width=300, height=50, x=150, y=540)


root7.update()
root7.mainloop()

有人请帮忙。

苏里亚·纳特

我终于找到了答案。问题不在于列表,而是当我使用Spinbox小部件的初始值时引起的,这是修改后的代码。

import tkinter as tk
from PIL import Image, ImageTk
from PyPDF2 import PdfFileReader, PdfFileWriter
from tkinter import filedialog
from tkinter import messagebox
  
w = 0
w1 = 0
root7 = tk.Toplevel()
root7.geometry("600x600")
root7.title("PDF Splitter")
root7.configure(bg="#202020")
elements = []

    
image7 = Image.open("split.jpg")
new_img7 = image7.resize((600,400))
photo7 = ImageTk.PhotoImage(new_img7)


def open1():
    global w, w1
    pdf = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("pdf files","*.pdf"),("all files","*.*")))
    elements.append(pdf)

    w = tk.Spinbox(root7, from_=0, to=100, width=3)
    w.place(x=150, y=510)
    

    w1 = tk.Spinbox(root7, from_=0, to=100, width=3)
    w1.place(x=409, y=510)
    elements.append(int(w1.get()))
    
def split():
    global w, w1
    pdfs = PdfFileReader(elements[0], "rb")
    pdf_writer = PdfFileWriter()

    elements.append(int(w.get()))
    elements.append(int(w1.get()))

    w2 = int(w.get())
    w3 = int(w1.get())

    for page in range(45):
        pdf_writer.addPage(pdfs.getPage(w2-1))
        w2+=1
        if (w2-1)==(w3):
            break

    output_fname = "splitted.pdf"

    with open(output_fname, 'wb') as out:
        pdf_writer.write(out)

    messagebox.showinfo("Splitted","PDF Saved in Desktop as splitted.pdf")
    

lbl7 = tk.Label(root7,image=photo7)
lbl7.place(x=0, y=0)

button7 = tk.Button(root7, text= 'Open PDF', command=open1, bg="#B8B8B8")
button7.place(width=300, height=50, x=150, y=450)

button8 = tk.Button(root7, text= 'Split PDF', command=split, bg="#B8B8B8")
button8.place(width=300, height=50, x=150, y=540)


root7.update()
root7.mainloop()

GUI不好,但是仍然可以使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python的tkinter mainloop()中刷新字典?

来自分类Dev

如何在Tkinter python中替换标签?

来自分类Dev

如何在Tkinter中更改标签的值

来自分类Dev

Python Tkinter,如何在Tkinter TreeView中获取某项的子项?

来自分类Dev

如何在 tkinter (python) 中更改框的背景颜色

来自分类Dev

如何在python中使用Tkinter遍历标签中的列表?

来自分类Dev

如何在不按 Python3 中的按钮的情况下更改 tkinter 标签的文本?

来自分类Dev

如何在python 3.4中的tkinter中请求输入数据?

来自分类Dev

如何在python tkinter中重叠窗口小部件/框架?

来自分类Dev

如何在python类中引用Tkinter小部件

来自分类Dev

如何在Python(tkinter)中停止计时器?

来自分类Dev

如何在Tkinter Python应用程序中删除视频?

来自分类Dev

Python Tkinter-如何在Canvas中包含小部件?

来自分类Dev

Python Tkinter如何在txt文档中编辑脚本变量?

来自分类Dev

如何在python类中引用Tkinter小部件

来自分类Dev

如何在tkinter和python中刷新标签

来自分类Dev

如何在python中设置Tkinter以显示和更新变量?

来自分类Dev

Python Tkinter如何在画布中显示文本

来自分类Dev

如何在tkinter python中访问选定的变量

来自分类Dev

我如何在 python tkinter 中显示调整大小的图像

来自分类Dev

Python,Tkinter:如何使用线程防止tkinter gui mainloop崩溃

来自分类Dev

更改python tkinter中变量的值

来自分类Dev

Tkinter mainloop()未运行-Python

来自分类Dev

如何在Python Tkinter中更改条目小部件的边框颜色

来自分类Dev

如何在我的 Python 应用程序中添加自定义 tkinter 文本框?

来自分类Dev

如何在Tkinter中打开SVG文件?

来自分类Dev

如何在Tkinter中显示图例?

来自分类Dev

如何在Tkinter中禁用组合框?

来自分类Dev

如何在Tkinter中找出PhotoImage的大小?

Related 相关文章

  1. 1

    如何在Python的tkinter mainloop()中刷新字典?

  2. 2

    如何在Tkinter python中替换标签?

  3. 3

    如何在Tkinter中更改标签的值

  4. 4

    Python Tkinter,如何在Tkinter TreeView中获取某项的子项?

  5. 5

    如何在 tkinter (python) 中更改框的背景颜色

  6. 6

    如何在python中使用Tkinter遍历标签中的列表?

  7. 7

    如何在不按 Python3 中的按钮的情况下更改 tkinter 标签的文本?

  8. 8

    如何在python 3.4中的tkinter中请求输入数据?

  9. 9

    如何在python tkinter中重叠窗口小部件/框架?

  10. 10

    如何在python类中引用Tkinter小部件

  11. 11

    如何在Python(tkinter)中停止计时器?

  12. 12

    如何在Tkinter Python应用程序中删除视频?

  13. 13

    Python Tkinter-如何在Canvas中包含小部件?

  14. 14

    Python Tkinter如何在txt文档中编辑脚本变量?

  15. 15

    如何在python类中引用Tkinter小部件

  16. 16

    如何在tkinter和python中刷新标签

  17. 17

    如何在python中设置Tkinter以显示和更新变量?

  18. 18

    Python Tkinter如何在画布中显示文本

  19. 19

    如何在tkinter python中访问选定的变量

  20. 20

    我如何在 python tkinter 中显示调整大小的图像

  21. 21

    Python,Tkinter:如何使用线程防止tkinter gui mainloop崩溃

  22. 22

    更改python tkinter中变量的值

  23. 23

    Tkinter mainloop()未运行-Python

  24. 24

    如何在Python Tkinter中更改条目小部件的边框颜色

  25. 25

    如何在我的 Python 应用程序中添加自定义 tkinter 文本框?

  26. 26

    如何在Tkinter中打开SVG文件?

  27. 27

    如何在Tkinter中显示图例?

  28. 28

    如何在Tkinter中禁用组合框?

  29. 29

    如何在Tkinter中找出PhotoImage的大小?

热门标签

归档