4

这段代码工作正常:

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()

有人知道这里出了什么问题吗?

感谢你的回答。错过了这个。

4

1 回答 1

2

框架本身需要打包:

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

对于要看到的小部件,它及其所有父小部件必须注册到几何管理器,这可以通过packgridplace方法完成。

于 2013-05-07T22:15:46.377 回答