2013-05-07 188 views
3

这段代码内正常工作:Tkinter的不显示在画布上的图像时,在画布被置于一个框架

import Tkinter 
from PIL import ImageTk, Image 

root = Tkinter.Tk() 

Image_ = Image.open("optical.jpg") 
ImageForTK = ImageTk.PhotoImage(Image_) 

ImageCanvas = Tkinter.Canvas(root, width = Image_.size[0], height = Image_.size[1])   
ImageCanvas.pack() 
ImageCanvas.create_image(0, 0, anchor = Tkinter.NW, image = ImageForTK) 
root.mainloop() 

在图像中未示出该第二代码段,因为我已经添加显示画面的画布对象周围的框架。

import Tkinter 
from PIL import ImageTk, Image 

root = Tkinter.Tk() 

Image_ = Image.open("optical.jpg") 
ImageForTK = ImageTk.PhotoImage(Image_) 

Frame = Tkinter.Frame(root) 
# EDIT: 
Frame.pack() 
# END EDIT 
ImageCanvas = Tkinter.Canvas(Frame, width = Image_.size[0], height = Image_.size[1])   
ImageCanvas.pack() 
ImageCanvas.create_image(0, 0, anchor = Tkinter.NW, image = ImageForTK) 
root.mainloop() 

有没有人有一个想法什么是goint错误在这里?

感谢您的回答。错过了这一个。

回答

2

框架本身需要进行包装:

Frame = Tkinter.Frame(root) 
Frame.pack() 

对于一个小工具,可以看出,它和所有它的父窗口部件必须用几何管理器,可与pack完成注册,gridplace方法。