【问题标题】:Tkinter does not show a picture on canvas when the canvas is put inside a frame当画布放在框架内时,Tkinter 不会在画布上显示图片
【发布时间】:2013-05-07 22:09:28
【问题描述】:

这段代码运行良好:

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

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

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

【问题讨论】:

    标签: python canvas tkinter frame python-imaging-library


    【解决方案1】:

    框架本身需要打包:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2014-12-16
      • 1970-01-01
      • 2015-11-29
      • 2019-06-26
      相关资源
      最近更新 更多