【问题标题】:minsize() and maxsize() methods doesn't work in tkinter python(Toplevel)minsize() 和 maxsize() 方法在 tkinter python(Toplevel) 中不起作用
【发布时间】:2021-01-18 07:27:53
【问题描述】:

我最近试图在 python 中制作一个 pdf 查看器,所以我设置了窗口的 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()

【问题讨论】:

  • but it doesn't seem to work 请澄清一下?
  • 您的代码似乎对我有用。我无法将顶层缩小到 300x200 以下,也无法将其扩大到 900x800 以上。
  • 你确定它工作正常
  • @Suryanath 是的,它可以工作,仅适用于 Toplevel() 窗口
  • 我做不到我正在做一个项目,这是我需要解决的最后一个问题

标签: python pdf tkinter max-size


【解决方案1】:

当您创建父窗口时使用Tk(),否则使用Toplevel() 将创建一个Tk()(不适用minsize 和maxsize)窗口而不需要您请求它,您可能误解了您的@987654324 @window,就这么说吧:

tk.Tk().withdraw()
root4 = tk.Tk()

对我来说,这解决了弹出两个窗口的问题。请记住 minsize()maxsize() 有效,只是您在错误的窗口上尝试了它。

【讨论】:

  • 实际上,我正在编写一个不能使用 tk.Tk() 的程序,而必须使用 tk.Toplevel()。有没有可以与 tk.Toplevel() 一起使用的方法,如 maxsize 和 minsize
  • @Suryanath 是的,它有效,Toplevel() 我告诉你正在调整错误的窗口大小,当你运行代码时不会弹出两个窗口吗?
  • 是的,我想调整主窗口的大小,我该怎么做
  • @Suryanath 我相信,主窗口只能用Tk() 创建,Toplevel() 只会创建一个子窗口。
猜你喜欢
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多