FAQ
Hi

I'm trying to build a small application that can display some images
in a toplevel window. I have this code:

def Results(master):
from Tkinter import Toplevel, Button, Label
from PIL import ImageTk

figures = ['first.png', 'second.png']

ResultsWindow = Toplevel(master)
ResultsWindow.title('Results')

picts = [ImageTk.PhotoImage(file = x) for x in figures]

butRW = Button(ResultsWindow, text = 'CLOSE', command =
ResultsWindow.destroy)
butRW.pack()

height = sum([x.height() for x in picts])
width = picts[0].width()

y = 0
for pict in picts:
label = Label(ResultsWindow,image=pict).pack()
y += pict.height()

from Tkinter import Tk
root = Tk()
Results(root)
root.mainloop()

and I just can see a grey window with a "close" button... However,
when I try the same code with the root I can see both images... Can
anyone give me a tip?

Thanks! :)

Search Discussions

  • Adam E at Aug 22, 2008 at 8:56 pm

    On Aug 22, 9:17 am, Pedro wrote:
    Hi

    I'm trying to build a small application that can display some images
    in a toplevel window. I have this code:

    def Results(master):
    from Tkinter import Toplevel, Button, Label
    from PIL import ImageTk

    figures = ['first.png', 'second.png']

    ResultsWindow = Toplevel(master)
    ResultsWindow.title('Results')

    picts = [ImageTk.PhotoImage(file = x) for x in figures]

    butRW = Button(ResultsWindow, text = 'CLOSE', command =
    ResultsWindow.destroy)
    butRW.pack()

    height = sum([x.height() for x in picts])
    width = picts[0].width()

    y = 0
    for pict in picts:
    label = Label(ResultsWindow,image=pict).pack()
    y += pict.height()

    from Tkinter import Tk
    root = Tk()
    Results(root)
    root.mainloop()

    and I just can see a grey window with a "close" button... However,
    when I try the same code with the root I can see both images... Can
    anyone give me a tip?

    Thanks! :)
    You can try making a class for the Tkinter.Toplevel window. I don't
    have PIL, but I know if you query for a widget's value when the window
    is not yet displayed, it will give a nearly 0-by-0 size result.

    You can also try to set a size for the Toplevel window and see if the
    images display.

    I have not encountered this before, but I only know what I have read
    from books (like Programming Python by O'Reilly) and have assumed.

    Good luck.
  • Fredrik Lundh at Aug 23, 2008 at 10:07 am

    Pedro wrote:

    and I just can see a grey window with a "close" button... However,
    when I try the same code with the root I can see both images... Can
    anyone give me a tip?
    this was cross-posted to the tkinter mailing list; in case someone
    stumbles upon this via a search engine, here's a link that explains why
    this happens:

    http://effbot.org/tkinterbook/photoimage.htm#note

    </F>

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedAug 22, '08 at 4:17p
activeAug 23, '08 at 10:07a
posts3
users3
websitepython.org

3 users in discussion

Pedro: 1 post Fredrik Lundh: 1 post Adam E: 1 post

People

Translate

site design / logo © 2022 Grokbase