Python 根据照片调整tk窗口

Python 根据照片调整tk窗口,python,tkinter,python-imaging-library,Python,Tkinter,Python Imaging Library,我将在这之前,我对编程很陌生。我正在尝试将我的tkinter窗口“background\u app”自动调整为我导入应用程序的任何照片。我见过有示例的线程,但它们通常会创建一个新类。我还没有创建一个新类,我想知道我是否可以在不创建新类的情况下完成任务。下面是我的代码,当前大小设置为“600x600”。有人有什么建议吗?多谢各位 import tkinter as tk from PIL import Image, ImageTk def main(): buttons() def b

我将在这之前,我对编程很陌生。我正在尝试将我的tkinter窗口“background\u app”自动调整为我导入应用程序的任何照片。我见过有示例的线程,但它们通常会创建一个新类。我还没有创建一个新类,我想知道我是否可以在不创建新类的情况下完成任务。下面是我的代码,当前大小设置为“600x600”。有人有什么建议吗?多谢各位

import tkinter as tk
from PIL import Image, ImageTk

def main():
    buttons()

def buttons():
    background_app = tk.Tk()
    background_app.title(input("Title? "))
    path = r'C:\Users\Kate\Desktop\Rockphoto.jpg'
    img = ImageTk.PhotoImage(Image.open(path))   #Creates Tkinter photo image
    background_app.geometry("600x600")

    route_image = tk.Label(background_app, image = img) 
    route_image.pack() #Packs widgets in rows or columns

    background_app.mainloop()

您可以使用PIL获取图像尺寸

width, height = image.size
此处引用

image = PIL.Image.open("sample.png")
获取维度

width, height = image.size
然后可以将其输入到几何体中。
希望这有帮助:)

只要去掉
.geometry()
行即可。调整窗口大小以适应内容是Tkinter.resize的默认行为。。。窗口。。。对于任何照片:这种方法只适用于图像不大于屏幕的情况。这回答了你的问题吗?谢谢你的回复。摆脱.geometry()成功了!我将尝试更多的图片。我正在努力与这一个。我打印了图像。大小和它给我的宽度和高度,使工程。但当我把它插入几何体时,它说的是“糟糕的几何体说明符”