Лучший способ создать несколько изображений холста Tkinter? - PullRequest
0 голосов
/ 28 мая 2020

В своей программе я создаю много изображений на холсте, однако я чувствую, что то, что я делаю сейчас, неэффективно и однообразно. Вот основная c структура программы:

import tkinter as tk
from PIL import Image, ImageTk

CANVAS_IMG = ['image1', 'image2', 'image3', 'image4']

class MyApp:
    def __init__(self, parent):
        self.parent = parent
        self.canvas_img = {item: ImageTk.PhotoImage(file=f'img/{item}.png') for item in CANVAS_IMG}

        self.canvas.create_image(485, 370, image=self.canvas_img['image1'])
        self.canvas.create_image(490, 360, image=self.canvas_img['image2'])
        self.canvas.create_image(350, 55, image=self.canvas_img['image3'])
        self.canvas.create_image(720, 375, image=self.canvas_img['image4'])

if __name__ == '__main__':
    root = tk.Tk()
    MyApp(root)
    root.mainloop()

Координаты изображений не соответствуют никакому шаблону.

Я подумал о создании списка кортежей для хранения координат изображений, но это кажется неуклюжим. Что бы вы порекомендовали как лучший способ сделать это?

1 Ответ

1 голос
/ 28 мая 2020

Одним из способов было бы создать словарь, где ключи - это имена изображений, а значения - координаты:

IMAGE_DATA = {
    "image1": (485, 370),
    "image2": (490, 360),
    ...
}

Затем вы можете легко oop поверх словаря создавать изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...