生成人工窗口调整TKinter Python

生成人工窗口调整TKinter Python,python,image,tkinter,window,python-imaging-library,Python,Image,Tkinter,Window,Python Imaging Library,我有一个tkinter程序,它从youtube教程中复制了以下功能,可以随着窗口大小的变化动态调整画布的大小 def resize_image(event): global image, resized_image, new_image image = Image.open('1613768_night-sky-png-meteor-stars-night-sky-meteorday.png') resized_image = image.resize((event.wi

我有一个tkinter程序,它从youtube教程中复制了以下功能,可以随着窗口大小的变化动态调整画布的大小

def resize_image(event):
    global image, resized_image, new_image
    image = Image.open('1613768_night-sky-png-meteor-stars-night-sky-meteorday.png')
    resized_image = image.resize((event.width, event.height), Image.ANTIALIAS)
    new_image = ImageTk.PhotoImage(resized_image)
    canvas.create_image(0, 0, image=new_image, anchor='nw')
我有画布边界,从它占据整个屏幕开始,因为如果我不这样做,图像将永远无法覆盖整个屏幕。但是,我希望窗口以小于全屏的大小打开。因此,完整图像是不可见的,因为它超出了窗口边界,并且只有在我调整其大小后才适合窗口,因此在开始时,您实际上只能看到图像的左上象限。有没有一种方法可以通过向其传递一个假事件来触发resize_image,该事件将窗口的大小调整为1x1

如果这有帮助,我将使用.place()将画布放在屏幕上。我正在使用网格,但无法将图像添加到网格,因为这样它就不能作为背景图像使用,并且无法使用.pack()的展开选项,因为我已经在使用网格


此外,在窗口中的任何位置人工单击鼠标都不起作用,这必须是人为调整大小的尝试。

您可以使用此随机导入

from tkinter import *                                                                       # IMPORTS //////////////////
import random

root = Tk()                                                                                 # WINDOW ATTRIBUTES ////////
size_x = random.randint(0, 999)    # x coord
size_y = random.randint(0, 999)    # y coord
root.geometry("%dx%d" % (size_x, size_y))   # format to decimal

mainloop()

不幸的是,这并不能解决问题,因为这只是将窗口设置为初始大小。我需要一种方法来触发一个窗口大小调整一旦tkinter窗口打开。