Próbuje ustawić tło dla mojego okna tkinter. Mam kwadratowy obraz tła, który zanika w czerni wokół krawędzi, a następnie główne okno ma czarne tło. Obraz jest umieszczony na tle, a jeśli okno jest szersze niż jest wysokie, obraz centruje się pośrodku na czarnym tle i wszystko wygląda bardzo ładnie.Tkinter zmienia rozmiar obrazu tła na rozmiar okna (Python 3.4)
Jednak gdy okno jest mniejsze niż obraz w szerokości i wysokości, umieszcza środek obrazu pośrodku okna, więc nie widać całego obrazu i wygląda trochę dziwnie. Czy istnieje sposób zmiany rozmiaru obrazu, więc jeśli największa szerokość i wysokość okna jest mniejsza niż obraz, obraz jest dostosowywany do tego rozmiaru, zachowując proporcje.
więc powiedzieć, że obraz tła jest 600x600
:
- W oknie
800x400
, obraz nie zmiana rozmiaru, a centra sama w pionie. - W oknie
500x400
obraz zmienia się na500x500
i nadal centruje się w pionie. - W oknie
400x900
obraz nie zmienia rozmiaru i jest wyśrodkowany w poziomie.
Funkcja centrowania już istnieje, potrzebuję tylko funkcji zmiany rozmiaru.
Obecnie co mam to:
from tkinter import *
root = Tk()
root.title("Title")
root.geometry("600x600")
root.configure(background="black")
background_image = PhotoImage(file="Background.gif")
background = Label(root, image=background_image, bd=0)
background.pack()
root.mainloop()
Nie wiem, czy istnieje sposób na osiągnięcie tego w Tkinter? A może napisałbym swoją własną funkcję, która zmienia rozmiar obrazu zgodnie z rozmiarem okna, jednak obraz musi zmieniać rozmiar stosunkowo płynnie i szybko, jeśli użytkownik zmieni rozmiar okna w dowolnym momencie.
Użyj [poduszki] (http://pillow.readthedocs.org/en/latest/) do zmiany rozmiaru obrazu. – Marcin