2015-11-29 4 views
-1

им пытаются открыть несколько фотографий одновременно в Python:Tkinter - не может открыть несколько фотографий одновременно (Python)

import Tkinter as tk 
import os 
from PIL import Image, ImageTk 

root = tk.Tk() 
tk.Label(root, text="this is the root window").pack() 
root.geometry("200x200") 

for i in range(1, 6): 
    loc = os.getcwd() + '\pictures\pic%s.jpg'%(i) 
    img = Image.open(loc) 
    img.load() 
    photoimg = ImageTk.PhotoImage(img) 
    window = tk.Toplevel() 
    window.geometry("200x200") 
    tk.Label(window, text="this is window %s" % i).pack() 

root.mainloop() 

Он открывает 5 окон по мере необходимости (не включая корневое окно) , но картинки не отображаются. Предложения? Thnx заранее

+1

Какой виджет вы хотите, чтобы изображение было в, как вы не поместили его в любом виджете. См. Http://effbot.org/tkinterbook/photoimage.htm и http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm –

+0

вы загружаете изображение, но не добавляете это к окну – furas

+0

спасибо (------: –

ответ

0

Вам нужно добавить ярлык с аргументом image=photoimg в окно для отображения изображения.

Ваш код:

import Tkinter as tk 
import os 
from PIL import Image, ImageTk 

root = tk.Tk() 
tk.Label(root, text="this is the root window").pack() 
root.geometry("200x200") 

for i in range(1, 6): 
    loc = os.getcwd() + '\pictures\pic%s.jpg'%(i) 
    img = Image.open(loc) 
    img.load() 
    photoimg = ImageTk.PhotoImage(img) 
    window = tk.Toplevel() 
    window.geometry("200x200") 
    tk.Label(window, text="this is window %s" % i).pack() 
    tk.Label(window, image=photoimg).pack() 

root.mainloop() 
+0

Я понимаю, что вы говорите. Однако на нем отображается только последняя фотография, и проблема остается с остальными. Я не могу понять, почему. –