Cercando di impostare uno sfondo per la mia finestra di tkinter. Ho un'immagine di sfondo quadrata, che sfuma in nero attorno ai bordi, e quindi la finestra principale ha uno sfondo nero. L'immagine viene posizionata sullo sfondo e, se la finestra è più larga di quanto non sia alta, l'immagine si centra al centro dello sfondo nero, e tutto sembra molto bello.Tkinter ridimensiona l'immagine di sfondo alla dimensione della finestra (Python 3.4)
Tuttavia, quando la finestra è più piccola dell'immagine in larghezza e altezza, mette il centro dell'immagine al centro della finestra, in modo da non vedere l'intera immagine, e sembra un po 'strano. Esiste un modo per ridimensionare l'immagine in modo che se la larghezza e l'altezza della finestra più grandi rispetto all'immagine, l'immagine viene adattata a tali dimensioni, mantenendo le proporzioni.
Così dicono l'immagine di sfondo è 600x600
:
- In una finestra
800x400
, l'immagine non ridimensiona, e si centra verticalmente. - In una finestra
500x400
, l'immagine viene ridimensionata a500x500
e continua a centrarsi verticalmente. - In una finestra
400x900
, l'immagine non viene ridimensionata e si centra orizzontalmente.
La funzionalità di centratura è già lì, ho solo bisogno della funzionalità di ridimensionamento.
Attualmente Quello che ho è:
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()
Non sono sicuro se c'è un modo di fare questo in tkinter? O se forse scriverei la mia funzione che ridimensiona l'immagine in base alla dimensione della finestra, tuttavia l'immagine deve ridimensionarsi in modo relativamente fluido e rapido se l'utente ridimensiona la finestra in qualsiasi momento.
Usa [cuscino] (http://pillow.readthedocs.org/en/latest/) per ridimensionare le immagini. – Marcin