親ウインドウ上に図形を描画し、その上にマウスが置かれると子ウインドウを作成して所定の画像を表示させたいです。
【確認した事】
親ウインドウの図形上にマウスを置いた時、子ウインドウが出力
【困っている事】
子ウインドウ上に画像が表示されず、背景色に指定した真っ白なウインドウのみ表示される
画像を表示するためには、どのように修正すればよろしいでしょうか?
エラーなどがないため、修正するための手がかりも無い状態です。
不足情報がございましたら、おっしゃってください。
ご回答、よろしくお願いいたします。
※ご指摘頂きました点、修正致しました
python3.8.5
import tkinter as tk from PIL import Image, ImageTk
子ウインドウ
class ChildWindow(tk.Frame): def __init__(self): self.root = tk.Toplevel() #修正:tk.TK() ⇒ tk.Toplevel() self.root.geometry("400x400") self.canvas= tk.Canvas(self.root, bg="white") self.canvas.pack(fill=tk.BOTH, expand=True) def disp_image(self, filename): pil_image = Image.open(filename) self.photo_image = ImageTk.PhotoImage(image=pil_image, master=self.root) self.canvas.create_image(self.canvas.winfo_width()/ 2, self.canvas.winfo_height()/ 2, image=self.photo_image)
親ウインドウ
class ParentWindow: def __init__(self): self.root = tk.Tk() self.root.geometry("400x400") self.canvas = tk.Canvas(self.root, bg="white") self.canvas.pack(fill=tk.BOTH, expand=True) self.canvas.create_oval(100, 100, 110, 110, tag="point") #図形は適当 self.canvas.tag_bind("point", "<Enter>", self.hello) self.root.mainloop() def hello(self, e): #修正:hello() ⇒ hello(self, e) self.sub_root = ChildWindow() self.sub_root.disp_image('./test.bmp') ParentWindow()

回答2件
あなたの回答
tips
プレビュー