Simple Tkinter app works in Linux, not in Windows
john.orlando at gmail.com
john.orlando at gmail.com
Thu Feb 9 19:26:23 EST 2006
Hello,
I'm a newbie to Python (literally, within the last two weeks), and I am
playing around with Tkinter to build some simple GUIs. I am attempting
to build a simple class that displays a GIF. Here is the code:
#start of code
from Tkinter import *
class DisplayPict(Frame):
def __init__(self,parent=None):
Frame.__init__(self,parent)
self.pack()
self.img=PhotoImage(file="moon.gif")
self.can=Canvas(self)
self.can.create_image(2,2,image=self.img,anchor=NW)
self.can.pack(fill=BOTH)
#keep a reference to the img around
self.can.photo=self.img
if __name__ == '__main__': DisplayPict().mainloop()
#end of code
Anyway, I started with this code in Windoze using IDLE, and everytime I
ran it I kept getting an empty frame (well, presumably with a Canvas
that had nothing in it). I kept thinking that it had to be something
to do with the whole images-get-garbage-collected-if-not-referenced
issue that I read so much about. So I tried a bunch of different
permutations and nothing made a difference.
On a whim, I tried this code under Linux, and amazingly, it worked just
fine: the image was displayed as expected.
So...I am confused. I tried to do my homework (i.e., read through
"Programming Python", "Learning Python", and scouring the internet),
but I can't come up with an explanation as to why this doesn't work
under Windoze. Can anyone out there show me the error in what I have?
Thanks in advance,
John O
More information about the Python-list
mailing list