Q&A
実現したいこと
pythonのキャンパスを使った描画で、ある操作を行ったときに新しいキャンパスを開きたい。また、新しいキャンパスを閉じるまで、最初のキャンパスの処理を中断したい。
前提
実行するとキャンバスが表示され、ボタンを押すと新しいキャンバスが表示されるようにしました。新しいキャンバスにはcloseと書いたボタンを一つ描画しました。
自分が行いたかった事は、
・最初のキャンバスの状態でボタンを押すと新しいキャンバスが作成される。
・新しいキャンバスはcloseボタンを押すと閉じる。
・新しいキャンバスを閉じるまでは、さらに新しいキャンバスは作成しない。
です。しかし現状としては新しいキャンバスを閉じなくても追加のキャンバスが作成されます。どのようにすればよろしいでしょうか、ご教授ください。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1from tkinter import * 2 3def openNewCanvas(event): 4 toplevel = Toplevel() 5 newCanvas = Canvas(toplevel, width=100, height=75) 6 button = Button(newCanvas, text="close", command=newCanvas.destroy) 7 button.pack() 8 newCanvas.pack() 9 print('new window is opened') 10 11 12tk = Tk() 13canvas = Canvas(tk, width=400, height=300) 14canvas.pack() 15 16canvas.bind("<KeyPress>", openNewCanvas) 17canvas.focus_set() 18 19tk.mainloop()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。