minsize() 和 maxsize() 方法在 tkinter python(Toplevel) 中不起作用
minsize() and maxsize() methods doesn't work in tkinter python(Toplevel)
我最近试图在 python 中制作一个 pdf 查看器,所以我设置了 window 的 minsize() 和 maxsize() 但它似乎不起作用。这是我的代码。
from pdf2image import convert_from_path
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
root4=tk.Toplevel()
root4.geometry("800x900")
root4.title("PDF Viewer")
root4.configure(bg="#202020")
root4.minsize(300, 200)
root4.maxsize(900, 800)
pdf_frame = tk.Frame(root4)
pdf_frame.pack(fill=tk.BOTH,expand=1)
scrol_y = tk.Scrollbar(pdf_frame,orient=tk.VERTICAL)
pdf = tk.Text(pdf_frame,yscrollcommand=scrol_y.set,bg="grey")
scrol_y.pack(side=tk.RIGHT,fill=tk.Y)
scrol_y.config(command=pdf.yview)
pdf.pack(fill=tk.BOTH,expand=1)
pages = convert_from_path(filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("pdf files","*.pdf"),("all files","*.*"))),size=(800,900))
photos = []
for i in range(len(pages)):
photos.append(ImageTk.PhotoImage(pages[i]))
for photo in photos:
pdf.image_create(tk.END,image=photo)
pdf.insert(tk.END,'\n\n')
root4.update()
root4.mainloop()
当您创建父级 window 时使用 Tk()
,否则使用 Toplevel()
将创建一个 Tk()
(最小尺寸和最大尺寸不适用)window 没有你的要求,你可能会误解你的 root4
window,所以只说:
tk.Tk().withdraw()
root4 = tk.Tk()
这为我解决了弹出两个 windows 的问题。请记住 minsize()
和 maxsize()
有效,只是您在错误的 window.
上尝试了它
我最近试图在 python 中制作一个 pdf 查看器,所以我设置了 window 的 minsize() 和 maxsize() 但它似乎不起作用。这是我的代码。
from pdf2image import convert_from_path
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
root4=tk.Toplevel()
root4.geometry("800x900")
root4.title("PDF Viewer")
root4.configure(bg="#202020")
root4.minsize(300, 200)
root4.maxsize(900, 800)
pdf_frame = tk.Frame(root4)
pdf_frame.pack(fill=tk.BOTH,expand=1)
scrol_y = tk.Scrollbar(pdf_frame,orient=tk.VERTICAL)
pdf = tk.Text(pdf_frame,yscrollcommand=scrol_y.set,bg="grey")
scrol_y.pack(side=tk.RIGHT,fill=tk.Y)
scrol_y.config(command=pdf.yview)
pdf.pack(fill=tk.BOTH,expand=1)
pages = convert_from_path(filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("pdf files","*.pdf"),("all files","*.*"))),size=(800,900))
photos = []
for i in range(len(pages)):
photos.append(ImageTk.PhotoImage(pages[i]))
for photo in photos:
pdf.image_create(tk.END,image=photo)
pdf.insert(tk.END,'\n\n')
root4.update()
root4.mainloop()
当您创建父级 window 时使用 Tk()
,否则使用 Toplevel()
将创建一个 Tk()
(最小尺寸和最大尺寸不适用)window 没有你的要求,你可能会误解你的 root4
window,所以只说:
tk.Tk().withdraw()
root4 = tk.Tk()
这为我解决了弹出两个 windows 的问题。请记住 minsize()
和 maxsize()
有效,只是您在错误的 window.