Pythonのtkinkerで二つのウインドウを同時に表示させる時の注意点


Tkinterとは

PythonにあるGUIツールキットのことでツール制作などで用いる際に使用される。

経緯

python のtkinker を使ってツールの制作をしている時に二つのウインドウを表示させたいときがあった。

問題点

二つのウィンドウを表示させる際に以下のエラーが生じた

_tkinter.TclError: image "pyimage1" doesn't exist

原因

root1 = tk.TK() ## ウインドウを作る

root2 = tk.TK() ## 二つ目のウインドウを作る

上のコードのように二つ目のウインドウにもtk.TK()を使用していたため。

修正

root1 = tk.TK() ## ウインドウを作る

root2 = tk.Toplevel() ## 二つ目のウインドウを作る

このコードのように二つ目を Toplevel() に変えることでうまく
二つ目のウインドウも同時に表示することができた。

注意

原因部分と修正部分を強調するために他のコードを省いており、このコードだけでウィンドウを表示できるわけではないのでエラーで躓いている人に参考になれば、幸いです。

この記事が気に入ったらサポートをしてみませんか?