Я сделал простой виджет с фоном, который автоматически изменяет размеры в соответствии с формой окна. Пока что изображение, которое я разместил, не соответствует нужной точке фона. Может кто-нибудь объяснить, как я могу правильно исправить изображение на движущемся фоне, а не на окне, любая помощь приветствуется.
import turtle
import tkinter as tk
from tkinter import *
from PIL import Image, ImageTk
import webbrowser
class App(Frame):
def __init__(self, master, Buttons=None):
Frame.__init__(self, master, Buttons)
self.columnconfigure(0,weight=1)
self.rowconfigure(0,weight=1)
self.original = Image.open(r"C:\specific\image.gif")
self.image = ImageTk.PhotoImage(self.original)
self.display = Canvas(self, bd=0, highlightthickness=0)
self.display.create_image(500, 500, image=self.image, anchor=NW, tags="IMG")
self.display.grid(row=0, column=0, sticky=W+E+N+S)
self.pack(fill='both', expand=True)
self.bind("<Configure>", self.resize)
self.Buttons()
self.Vehicles()
def resize(self, event):
size = (event.width, event.height)
resized = self.original.resize(size, Image.ANTIALIAS)
self.image = ImageTk.PhotoImage(resized)
self.display.delete("IMG")
self.display.create_image(0, 0, image=self.image, anchor=NW, tags="IMG")
def Buttons(self):
self.VButton = tk.Button(master=self, text = "not relevant", font=('Arial, 8')) #, command = forward).pack(side = tk.LEFT)
self.VButton.grid(row=0, column=2, sticky=N, columnspan=2)
def qlink():
webbrowser.open_new(r"http://172.16.0.926/big/")
self.QButton = tk.Button(master=self, text = "not relevant", font=('Arial, 8'), command = qlink)
self.QButton.grid(row=0, column=2, sticky=NW, pady=30, columnspan=2)
def Link():
webbrowser.open_new(r"\\con\UserData\hello\Project\Vserver\file.html")
self.GraphButton = tk.Button(master=self, font=('Arial, 8'), text = "not needed", command = Link)
self.GraphButton.grid(row=0, column=2, sticky=NW, pady=60, columnspan=2)
self.HelpButton = tk.Button(master=self, font=('Arial, 8'), text = "also not relevant") #, command = forward).pack(side = tk.LEFT)
self.HelpButton.grid(row=0, column=2, sticky=N, pady=90, columnspan=2)
def Vehicles(self):
width = 50
height = 25
image = Image.open(r"C:\specific\newimage.png")
image =image.resize((width,height), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
label = Label(image=photo)
label.image = photo
label.place(x=500, y=600)
root = Tk()
app = App(root)
app.mainloop()