7

Pythonでキャンバスに背景画像を追加しようとしています。これまでのところ、コードは次のようになっています。

from Tkinter import *
from PIL import ImageTk,Image

... other stuffs

root=Tk()
canvasWidth=600
canvasHeight=400
self.canvas=Canvas(root,width=canvasWidth,height=canvasHeight)
backgroundImage=root.PhotoImage("D:\Documents\Background.png")
backgroundLabel=root.Label(parent,image=backgroundImage)
backgroundLabel.place(x=0,y=0,relWidth=1,relHeight=1)
self.canvas.pack()
root.mainloop()

AttributeErrorを返しています:PhotoImage

4

4 に答える 4

10

PhotoImageTk()インスタンスの属性ではありません( root)。からのクラスですTkinter

したがって、次を使用する必要があります。

backgroundImage = PhotoImage("D:\Documents\Background.gif")

注意してくださいLabelからのクラスもTkinter...

編集:

残念ながら、Tkinter.PhotoImagegifファイル(およびPPM)でのみ機能します。pngファイルを読み取る必要がある場合は、からのモジュールPhotoImageで(はい、同じ名前の)クラスを使用できます。ImageTkPIL

そのため、これによりpng画像がキャンバスに配置されます。

from Tkinter import *
from PIL import ImageTk

canvas = Canvas(width = 200, height = 200, bg = 'blue')
canvas.pack(expand = YES, fill = BOTH)

image = ImageTk.PhotoImage(file = "C:/Python27/programas/zimages/gato.png")
canvas.create_image(10, 10, image = image, anchor = NW)

mainloop()

ここに画像の説明を入力してください

于 2012-11-30T01:11:23.903 に答える