生成人工窗口调整TKinter Python
我有一个tkinter程序,它从youtube教程中复制了以下功能,可以随着窗口大小的变化动态调整画布的大小生成人工窗口调整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
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窗口打开。