[Tutor] Images + Tkinter
Gregor Lingl
glingl@aon.at
Sun Nov 17 03:33:01 2002
Hallo Hans,
your example (see below) seems indeed to be very strange
and counterintuitive.
I can't explain it.
But I made the following two observations:
1. The following code displays the rectangle but not the image:
import Tkinter,
from Tkconstants import *
def window(tk):
frame=Tkinter.Frame(tk)
frame.pack()
canvas=Tkinter.Canvas(frame,width=400,height=500)
photo=Tkinter.PhotoImage(file="boat.gif")
canvas.create_image(200, 250, image=photo)
canvas.create_rectangle(10,20,30,40,fill="red")
canvas.pack()
button=Tkinter.Button(frame, text="EXIT", command=tk.destroy)
button.pack()
# tk.mainloop() # ?????????????????????????
root = Tkinter.Tk()
window(root)
root.mainloop()
2. The following code displays the image:
import Tkinter
from Tkconstants import *
def window(tk,photo):
frame=Tkinter.Frame(tk)
frame.pack()
canvas=Tkinter.Canvas(frame,width=400,height=500)
canvas.create_image(200, 250, image=photo)
canvas.pack()
button=Tkinter.Button(frame, text="EXIT", command=tk.destroy)
button.pack()
# tk.mainloop() # ?????????????????????????
root = Tkinter.Tk()
photo=Tkinter.PhotoImage(file="boat.gif")
window(root, photo)
root.mainloop()
Does anybody know the secrets, which lie behind this mystery?
Gregor
Hans Gubitz schrieb:
>Hello,
>
>tk.mainloop() seems to be not in the right place. But the gif will not
>be shown, when I eliminate this line.
>
>Any hints?
>
>
>
>import Tkinter
>from Tkconstants import *
>
>def window(tk):
> frame=Tkinter.Frame(tk)
> frame.pack()
> canvas=Tkinter.Canvas(frame,width=400,height=500)
> photo=Tkinter.PhotoImage(file="picture.gif")
> canvas.create_image(200, 250, image=photo)
> canvas.pack()
> button=Tkinter.Button(frame, text="EXIT", command=tk.destroy)
> button.pack()
>
> tk.mainloop() # ?????????????????????????
>
>root = Tkinter.Tk()
>window(root)
>root.mainloop()
>
>
>
>Hans Gubitz <gubitz@netcologne.de>
>
>
>_______________________________________________
>Tutor maillist - Tutor@python.org
>http://mail.python.org/mailman/listinfo/tutor
>
>
>
>