Я создаю простое приложение, используя tkinter.ttk. Я создаю одно приложение для просмотра изображений, но при его создании у меня возникают проблемы. Вот мой код:
from tkinter import *
from tkinter.ttk import *
from PIL import Image, ImageTk
root = Tk()
root.title("Simple Image Viewer")
style = Style()
root.columnconfigure(0, weight=True)
root.rowconfigure(0, weight=True)
img1 = ImageTk.PhotoImage(Image.open("images/img_1.jpg"))
img2 = ImageTk.PhotoImage(Image.open("images/img_2.jpg"))
img3 = ImageTk.PhotoImage(Image.open("images/img_3.jpg"))
images = [img1, img2, img3]
img_idx = 0
def previous_image():
global lbl_img
global images
global img_idx
img_idx = img_idx - 1
if img_idx < 0:
img_idx = len(images) - 1
try:
lbl_img.configure(image=images[img_idx])
except IndexError:
img_idx = -1
lbl_img.configure(image=images[img_idx])
finally:
status.configure(text=f"{img_idx + 1} of {len(images)} images.")
btn_back = Button(text="<", command=previous_image)
def forward_image():
global lbl_img
global images
global img_idx
img_idx = img_idx + 1
try:
lbl_img.configure(image=images[img_idx])
except IndexError:
img_idx = 0
lbl_img.configure(image=images[img_idx])
finally:
status.configure(text=f"{img_idx + 1} of {len(images)} images.")
btn_forward = Button(text=">", command=forward_image)
lbl_img = Label(image=images[img_idx])
status = Label(root, text=f"{img_idx + 1} of {len(images)} images.", borderwidth=1,
relief=SUNKEN, anchor="e")
status.grid(row=2, column=0, columnspan=3, stick=W+E)
btn_exit = Button(text="Exit", command=root.quit)
btn_back.grid(row=0, column=0, stick=W)
lbl_img.grid(row=0, column=1)
btn_forward.grid(row=0, column=2, stick=E)
btn_exit.grid(row=1, column=1)
root.mainloop()
Когда я запускаю это, это выглядит так: В маленьком окне
И когда я увеличиваю его: В максимальном размере Это происходит примерно так. На картинке выше вы можете видеть, что изображение не соответствует центру. Мои фотографии должны быть точно по центру как в маленьком, так и в большом окне. Пожалуйста, помогите мне в этом, посмотрев мою программу.
заранее спасибо
root.columnconfigure(0, weight=True)
наroot.columnconfigure(1, weight=1)
. - person acw1668   schedule 08.08.2020