【问题标题】:Best Way to Create Multiple Tkinter Canvas Images?创建多个 Tkinter 画布图像的最佳方法?
【发布时间】:2020-05-28 04:55:29
【问题描述】:

在我的程序中,我在画布上创建了许多图像,但是,我觉得我目前的做法是低效且重复的。这是程序的基本结构:

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()

图像的坐标不遵循任何模式。

我曾考虑创建一个元组列表来存储图像的坐标,但这似乎有点笨拙。你会推荐什么作为最好的方法?

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    一种方法是创建一个字典,其中键是图像名称,值是坐标:

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

    然后您可以轻松地遍历字典来创建图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多