[Tkinter-discuss] Returning control from a toplevel window

Michael Lange klappnase at web.de
Thu Apr 29 10:54:22 CEST 2010


Hi,

On Wed, 28 Apr 2010 14:21:21 -0700
Guido Carballo-Guerrero <charras at me.com> wrote:

>  
> Wayne, Michael;
> 
> This is a sample code that shows what I'm doing. As you can see, even
> if I don't have a while loop, the picture is not being shown. Am I
> missing something? What is wrong with my code that I can't open and
> show the picture in the new Toplevel window?
> 
(...)

>     image1_1 = Image.open('20188.jpg')
>     image1_2 = image1_1.resize((130,200))
>     photo1 = ImageTk.PhotoImage(image1_2)
> 
>     L1 = ttk.Label(F1)
>     L1.config(image = photo1)
>     L1.image = image1_2
                 ^^^^^^^^
That is the problem; as you noticed correctly, you have to add a
reference to the PhotoImage so it does not get garbage collected. But
you need to add the reference to the PhotoImage object, in this case
photo1, not the PIL Image. Alternatively you can define the PhotoImage
globally, i.e. outside your pic() function.

I hope this helps

Michael



More information about the Tkinter-discuss mailing list