Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #108927

Re: Image loading problem

From Gary Herron <gherron@digipen.edu>
Newsgroups comp.lang.python
Subject Re: Image loading problem
Date 2016-05-21 10:16 -0700
Message-ID <mailman.86.1463851507.27390.python-list@python.org> (permalink)
References <743e5fbe-3a6c-49ea-ac5e-9bc055f652b5@googlegroups.com> <57409800.3090401@digipen.edu>

Show all headers | View raw


On 05/21/2016 08:22 AM, sweating_ant@yahoo.com wrote:
> Hi All,
>
>
> I am working on an image project, and I can display my image in main(). I mean, I can load my image in my main(). Needless, it is awkward. I am trying to load my image with a function, but got an empty image window popped up, no image content loaded. Please take a look at code:
>
>
>
> rom Tkinter import *
>
> def load_img(win):	
> 	img = PhotoImage(file="xxx.gif")
> 	Label(win, image=img).pack()
> 	
> win = Tk()
> load_img(win)
> win.mainloop()
>
> Somebody can help me out? Thanks!
>

I believe this the problem (However It's been long since I used Tkinter, 
so be warned ... ):

The function load_img creates a local variable named img which goes out 
of scope and is deleted immediately when the function returns. However, 
Tkinter needs you to keep that image around as long as the Label uses 
it.   So, some solutions are:

keep_me = [] #  Global for keeping references to images
def load_img(win):
         img = PhotoImage(file="xxx.gif")
         keep_me.append(img)
         Label(win, image=img).pack()

or


def load_img(win):
         img = PhotoImage(file="xxx.gif")
         Label(win, image=img).pack()
         return img

saved_img = load_img(win)
...


Gary Herron



-- 
Dr. Gary Herron
Professor of Computer Science
DigiPen Institute of Technology
(425) 895-4418

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Image loading problem "sweating_ant@yahoo.com" <huey.y.jiang@gmail.com> - 2016-05-21 08:22 -0700
  Re: Image loading problem Peter Otten <__peter__@web.de> - 2016-05-21 18:54 +0200
  Re: Image loading problem Peter Pearson <pkpearson@nowhere.invalid> - 2016-05-21 17:10 +0000
  Re: Image loading problem Gary Herron <gherron@digipen.edu> - 2016-05-21 10:16 -0700
  Re: Image loading problem Terry Reedy <tjreedy@udel.edu> - 2016-05-21 15:23 -0400
  Re: Image loading problem Random832 <random832@fastmail.com> - 2016-05-21 15:55 -0400
  Re: Image loading problem huey.y.jiang@gmail.com - 2016-05-21 21:01 -0700
  Re: Image loading problem Peter Otten <__peter__@web.de> - 2016-05-22 11:03 +0200
  Re: Image loading problem Michael Torrie <torriem@gmail.com> - 2016-05-22 13:37 -0600
  Re: Image loading problem Random832 <random832@fastmail.com> - 2016-05-22 16:19 -0400
    Re: Image loading problem Christian Gollwitzer <auriocus@gmx.de> - 2016-05-22 22:57 +0200

csiph-web