前提・実現したいこと
メニューバーを作ってボタンからいろいろな機能を実装していきたいです。そのなかで、ボタンに画像を配置したいのですが、以下のようなエラーが発生しました。
発生している問題・エラーメッセージ
TclError: image "pyimage5" doesn't exist
該当のソースコード
python
1import tkinter as tk 2from PIL import ImageTk, Image 3 4class App: 5 def __init__(self): 6 self.root = tk.Tk() 7 self.root.title('アプリ') 8 self.root.geometry('960x540') 9 self.root.resizable(width=False, height=False) 10 11 self.menubar = Menubar(self.root).pack() 12 13 def mainloop(self): 14 self.root.mainloop() 15 16class Menubar(tk.Frame): 17 def __init__(self, root): 18 super(Menubar, self).__init__(root) 19 self.root = root 20 21 def ToggleMenu(): 22 self.MenuFrame = tk.Frame(self.root, width=250, height=540, bg='#808080') 23 self.MenuFrame.place(x=710, y=0) 24 25 MenuCloseButton = tk.Button(self.MenuFrame, text='close', border=0, bg='#808080', command=self.MenuFrame.destroy) 26 MenuCloseButton.place(x=190, y=10) 27 28 def ExitWindow(): 29 Messagebox = tk.messagebox.askquestion('終了', 'アプリケーションを終了しますか?') 30 if Messagebox == 'yes': 31 self.root.destroy() 32 else: 33 return 34 35 def MenuBttn(x, y, text, cmd): 36 self.menubttn = tk.Button(self.MenuFrame, text = text, width = 37, height = 3, border = 0, bg = '#696969', fg = '#c0c0c0', command = cmd) 37 self.menubttn.place(x=x, y=y) 38 39 MenuBttn(0, 100, '設定', None) 40 MenuBttn(0, 152, 'ヘルプ', None) 41 MenuBttn(0, 204, '終了', ExitWindow) 42 43 GearIm = ImageTk.PhotoImage(Image.open('gear.png')) 44 45 self.MenuOpenButton = tk.Button(self.root, image=GearIm, text='open', border=0, command=ToggleMenu) 46 self.MenuOpenButton.place(x=900, y=10) 47 48def main(): 49 app = App() 50 app.mainloop() 51 52if __name__ == '__main__': 53 main() 54
試したこと
いろいろと調べてみましたが、これというものが見つからずか見つけられずか、プログラム的に試すことができませんでした。
補足情報(FW/ツールのバージョンなど)
tkinter, pandas, python3.8, spyder, anaconda
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。