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

この 2 番目のコードでは、画像を表示する canvas オブジェクトの周りにフレームを追加したため、画像は表示されません。

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

ウィジェットを表示するには、ウィジェットとそのすべての親ウィジェットをジオメトリ マネージャーに登録する必要があります。これは、packgridまたはplaceメソッドを使用して行うことができます。

于 2013-05-07T22:15:46.377 に答える