首页 > 解决方案 > 画布上的图像小部件 Tkinter

问题描述

我已经几乎完成了我正在制作的游戏,但现在我想让角色四处移动,在图形上看起来比方块更好。然而,所有的代码都是这样设计的,它只适用于画布小部件(在本例中为矩形)而不适用于图像。那么,有没有办法将图像粘贴到这样的画布小部件上或用图像填充画布小部件。经过一番研究,我认为我可以用 PIL 做到这一点,但它对我不起作用。

在这种情况下使用任何提示或其他推荐的软件包?或者我应该重写我所有的代码来处理图像对象(也就是我上面问的事情是不可能的)。

标签: pythonimagecanvastkinter

解决方案


你试过这里的例子

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode Tkinter tutorial

In this script, we draw an image
on the canvas.

Author: Jan Bodnar
Last modified: July 2017
Website: www.zetcode.com
"""

from tkinter import Tk, Canvas, Frame, BOTH, NW
from PIL import Image, ImageTk

class Example(Frame):

    def __init__(self):
        super().__init__()   

        self.initUI()


    def initUI(self):

        self.master.title("High Tatras")        
        self.pack(fill=BOTH, expand=1)

        self.img = Image.open("tatras.jpg")
        self.tatras = ImageTk.PhotoImage(self.img)

        canvas = Canvas(self, width=self.img.size[0]+20, 
           height=self.img.size[1]+20)
        canvas.create_image(10, 10, anchor=NW, image=self.tatras)
        canvas.pack(fill=BOTH, expand=1)


def main():

    root = Tk()
    ex = Example()
    root.mainloop()  


if __name__ == '__main__':
    main()   

推荐阅读