Python Forum
Create image on a Toplevel using tkinter
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Create image on a Toplevel using tkinter
#1
I'm using tkinter to create a login system. The main window goes as:

my_window=tkinter.Tk()
my_window.title('Welcome To Login System 1.0 !')
my_window.geometry('639x591')

my_canvas=tkinter.Canvas(my_window, height=639, width=591)
welcome_image=ImageTk.PhotoImage(Image.open('welcome2.png'))
image=my_canvas.create_image(0,0, anchor='nw',image=welcome_image)
my_canvas.pack(side='top')
and it works pretty fine.
But when I try to load an image on a Toplevel, the sub-window just keeps blank no matter how I change the pic:

signup_window=tkinter.Toplevel(my_window)
signup_window.geometry('500x400')
signup_window.title('Sign up now')

signup_canvas = tkinter.Canvas(signup_window, height=500, width=400)
signup_image = ImageTk.PhotoImage(Image.open('signup_bg.png'))
image2 = signup_canvas.create_image(0, 0, anchor='nw', image=signup_image)
signup_canvas.pack(side='top')
Don't know what goes wrong. I use the PIL module to load the image.
Reply
#2
Instead of using PIL I used tkinter.PhotoImage(file='imagefile') . When I ran your code I got two windows with two images. Maybe your signup_bg.png image file is bad.
Reply
#3
(Jun-03-2020, 12:00 PM)deanhystad Wrote: Instead of using PIL I used tkinter.PhotoImage(file='imagefile') . When I ran your code I got two windows with two images. Maybe your signup_bg.png image file is bad.
I fixed it by adding one line:
global signup_image
Guess it's because of the garbage collection force or something.
Reply
#4
I don't think garbage collection is the problem here. You get the garbage collection problem when you create an image in a function or method and use a local variable to reference the image. When the function exits all the local variables are deleted, there is nothing referencing the image, and it becomes available for garbage collection. Your code is not doing that. Your variables are not getting deleted, you image variable continues to reference your image, and your image should not get garbage collected.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  tkinter: Image to Label Maryan 10 203 Oct-29-2020, 01:48 PM
Last Post: joe_momma
  Scrollable big image in a window (TKinter) Prospekteur 3 214 Sep-14-2020, 03:06 AM
Last Post: Larz60+
  Adding an image to a tkinter window djwilson0495 2 547 Aug-23-2020, 11:07 AM
Last Post: ebolisa
  [PyQt] Create exe file including referenced image (*.png) files mart79 0 195 Jul-21-2020, 09:49 AM
Last Post: mart79
  Tkinter: Create an homepage look like PeroPuri 8 1,266 Jun-26-2020, 12:57 AM
Last Post: menator01
  [Tkinter] Tkinter Logo Image Evil_Patrick 1 610 May-25-2020, 05:12 AM
Last Post: DT2000
  [Tkinter] Connect Toplevel Radiobuttons to root Label/Entry widgets iconit 2 383 Apr-28-2020, 06:50 AM
Last Post: iconit
  tkinter and image paths menator01 2 434 Apr-14-2020, 08:46 PM
Last Post: menator01
  Transfer Toplevel window entry to root window entry with TKinter HBH 0 1,310 Jan-23-2020, 09:00 PM
Last Post: HBH
  [Tkinter] Image editor using Tkinter and PIL Raulica 2 1,248 Dec-03-2019, 10:10 PM
Last Post: joe_momma

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020