Đang cố gắng thiết lập nền cho cửa sổ tkinter của tôi. Tôi có một hình nền vuông, hình thành màu đen xung quanh các cạnh, và sau đó cửa sổ chính có nền đen. Hình ảnh được đặt trên nền và nếu cửa sổ rộng hơn chiều cao, hình ảnh sẽ tập trung vào chính giữa nền đen và tất cả trông rất đẹp.Tkinter thay đổi kích thước hình nền thành kích thước cửa sổ (Python 3.4)
Tuy nhiên khi cửa sổ nhỏ hơn chiều rộng và chiều cao hình ảnh, nó đặt trung tâm của hình ảnh ở giữa cửa sổ, vì vậy bạn không thấy toàn bộ hình ảnh và có vẻ hơi lạ. Có cách nào để thay đổi kích thước hình ảnh sao cho nếu chiều rộng lớn nhất và chiều cao của cửa sổ nhỏ hơn hình ảnh, hình ảnh được điều chỉnh theo kích thước đó, giữ tỷ lệ cỡ ảnh.
Vì vậy, nói hình nền là 600x600
:
- Trong cửa sổ
800x400
, hình ảnh không thay đổi kích thước, và các trung tâm riêng của mình theo chiều dọc. - Trong cửa sổ
500x400
, hình ảnh đổi kích thước thành500x500
và vẫn xoay tâm theo chiều dọc. - Trong cửa sổ
400x900
, hình ảnh không thay đổi kích thước và tự xoay tâm theo chiều ngang.
Chức năng định tâm đã có sẵn, tôi chỉ cần chức năng thay đổi kích thước.
Hiện nay những gì tôi có là:
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()
Không chắc chắn nếu có một cách để làm điều này trong Tkinter? Hoặc nếu có lẽ tôi sẽ viết chức năng của riêng tôi mà thay đổi kích thước hình ảnh theo kích thước cửa sổ, tuy nhiên hình ảnh cần phải thay đổi kích thước tương đối thuận lợi và nhanh chóng nếu người dùng thay đổi kích thước cửa sổ tại bất kỳ điểm nào.
Sử dụng [gối] (http://pillow.readthedocs.org/en/latest/) để thay đổi kích thước hình ảnh. – Marcin