TKinter PhotoImage Class?? - 2nd round
Robert C. Ramsdell
rcriii at ramsdells.net
Mon Oct 15 23:10:11 EDT 2001
A while back Matthew Dixon suggested the following bit of code to display a
jpeg on a Tkinter Canvas:
from Tkinter import *
import PIL.ImageTk
r=Tk()
i=PIL.ImageTk.PhotoImage(file="/home/rcriii/python/rempyre/tree32.jpg")
c=Canvas(r)
c.pack()
c.create_image(16,16,image=i)
r.mainloop()
This works fine. However, in trying to adapt it for an application I have
a problem. I have built the display in a class, with the Canvas as an
attribute of the class, and a method to draw the image in the Canvas (code
at the end of this message). When I try the method above in the method,
the Canvas remains empty. No errror message is given, the image just is
not displayed. Does anyone know why this is happening?
import Tkinter
from Tkconstants import *
import PIL.ImageTk
class display:
def __init__(self):
self.tk = Tkinter.Tk()
self.drawspace = Tkinter.Canvas(self.tk, background="white")
self.drawspace.pack()
def mainloop(self):
self.tk.mainloop()
def draw_image(self, iname):
self.drawspace.pack()
i=PIL.ImageTk.PhotoImage(file=iname)
self.drawspace.create_image(0,0,image=i)
if __name__ == "__main__":
m=display()
m.draw_image("/home/rcriii/python/rempyre/tree32.jpg")
m.mainloop()
More information about the Python-list
mailing list