2011-11-13 84 views
1

我有这样的消息:image“pyimage2”不存在。我想拥有带图像的多窗口,怎么样?PIL和Tkinter,多窗口

这里是我的代码:

import Image 
import ImageTk 
import Tkinter 



def new(): 
    wind = Tkinter.Tk() 
    wind.geometry('600x600')    # This not work, why? 
    imageFile2 = Image.open("someimage2.jpg") 
    image2 = ImageTk.PhotoImage(imageFile2) 

    panel2 = Tkinter.Label(wind , image=image2) 
    panel2.place(relx=0.0, rely=0.0) 
    wind.mainloop() 

master = Tkinter.Tk() 
master.geometry('600x600')    # This work fine 
imageFile = Image.open("someimage.jpg") 
image1 = ImageTk.PhotoImage(imageFile) 

panel1 = Tkinter.Label(master , image=image1) 
panel1.place(relx=0.0, rely=0.0) 
B = Tkinter.Button(master, text = 'New image', command = new).pack() 
master.mainloop() 

回答

3

变化wind = Tkinter.Tk()wind = Tkinter.Toplevel()

def new(): 
    wind = Tkinter.Toplevel() 
    wind.geometry('600x600')  

这就是你需要改变。


参考:

+0

Niceeeee unutbu,你帮我每一次,谢谢! – DRdr

+0

这个答案对我也有帮助。但是,现在我看到一个额外的小空框架,与我的程序顶部框架一起弹出。任何想法如何摆脱这一点? – erjoalgo

+1

@ealfonso:这个问题是关于如何创建两个独立的窗口。你看到的“小空框架”可能是其中没有窗口部件的窗口之一。如果你只需要一个窗口,那么你的程序应该调用'root = Tkinter.Tk()',并且永远不要调用'Tkinter.Toplevel()'。 – unutbu