Я пытаюсь добавить фоновое изображение в мой интерфейс.Мой интерфейс состоит из 3 различных разделов, я написал его с помощью объектно-ориентированного подхода.
С помощью приведенного ниже кода я могу создать фоновое изображение, но оно не расширяется и не уменьшается при уменьшении или увеличении размера интерфейса.Я нашел способ с помощью метода .pack с параметром (expand = True), но я использую диспетчер сетки, чтобы создать свой интерфейс, и я не могу изменить все свои коды, которые уже подчинены диспетчеру сетки.
import tkinter as tk
from tkinter import ttk
from PIL import ImageTk, Image
class Application(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
tk.Tk.wm_title(self, "SATRAP")
tk.Tk.geometry(self, "1000x200")
tk.Tk.minsize(self, width=200, height=200)
tk.Tk.iconbitmap(self, default="interface.ico")
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
tk.Frame.update(self)
tk.Frame.grid_columnconfigure(self, 0, weight=1)
tk.Frame.grid_columnconfigure(self, 1, weight=1)
tk.Frame.grid_columnconfigure(self, 2, weight=1)
tk.Frame.grid_columnconfigure(self, 3, weight=1)
tk.Frame.grid_columnconfigure(self, 4, weight=1)
tk.Frame.grid_columnconfigure(self, 5, weight=1)
self.createCanvasImage()
def createCanvasImage(self):
canvas = tk.Canvas(self, width=1000, height=200)
canvas.grid(row=0, column=0, rowspan=10, columnspan=7)
img = Image.open(r"picturepath")
canvas.image = ImageTk.PhotoImage(img)
canvas.create_image(0, 0, image=canvas.image, anchor=tk.NW)
class HelpMenu(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.createCanvasImage()
def createCanvasImage(self):
canvas = tk.Canvas(self, width=1000, height=200)
canvas.grid(row=0, column=0, rowspan=10, columnspan=7)
img = Image.open(r"picturepath")
canvas.image = ImageTk.PhotoImage(img)
canvas.create_image(0, 0, image=canvas.image, anchor=tk.NW)
Мне нужно иметь фоновое изображение, которое можно сжимать или расширять с помощью менеджера сетки.Прямо сейчас у меня есть изображение, но его размер не меняется.