4

問題が発生するコードの縮小部分を示します。

_tkinter.TclError: image "pyimageN" doesn't exist- N は 1、2、3 などを表します...

背景に画像を使用してメニューを表示する最初のクラスがあります。

class MenuWindow():    #in this class we show the main part of the program
    def __init__(self):
        self.Menu=Tk()
        self.MCanvas=Canvas(self.Menu)
        self.MCanvas.bind("<ButtonPress-1>",self.MenuClick)

        #unuseful lines that configure the window and the canvas#

        self.Background=PhotoImage(height=600,width=700)#a simple tkinter.PhotoImage object

        #other unuseful lines that draw the photoimage ( without reading any file, with the method put())#

        self.MCanvas.create_image((x,y),image=self.Background,state="normal")

        #unuseful lines that continue the drawing of the canvas#

そして、背景に別の画像を使用して、別のウィンドウを表示する 2 番目のクラス。このクラスは、関数 self.MenuClick のクリック バインドを介して最初のクラスによって起動されます。

class EditorWindow():    #in this class we show the main part of the program
    def __init__(self):
        self.Eenu=Tk()
        self.ECanvas=Canvas(self.Eenu)

        #unuseful lines that configure the window and the canvas#

        self.Background=PhotoImage(height=600,width=700)

        #other unuseful lines that draw the photoimage ( without reading any file , with the method put() )#

        self.ECanvas.create_image((x,y),image=self.Background,state="normal")#in this line i get the error

        #unuseful lines that continue the drawing of the canvas#

完全なトレースバックは次のとおりです。

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/__init__.py", line 1399, in __call__
    return self.func(*args)
  File "/Users/albertoperrella/Desktop/slay.py", line 70, in MenuClick
    EditorWindow(self)
  File "/Users/albertoperrella/Desktop/slay.py", line 85, in __init__
    self.ECanvas.create_image((3,3),image=self.Background,state="normal",anchor="nw")
  File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/__init__.py", line 2140, in create_image
    return self._create('image', args, kw)
  File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/__init__.py", line 2131, in _create
    *(args + self._options(cnf, kw))))
_tkinter.TclError: image "pyimage2" doesn't exist

2 つのクラスは同様の方法で作成されているため、2 番目のクラスでエラーが発生する理由がわかりません。私はそれが書き込みエラーではないことを確信しています(たとえば、コンストラクトではなくコンストラクト)、使用している画像が実際に存在することを確認しています。

だから私は思う:

  • 私はいくつかの概念の間違いを犯しています、

  • または、Python のバグ (または Tkinter の微妙な動作) です。

4

1 に答える 1