私はlabel
オブジェクトを持っていて、さまざまなイメージを表示する必要があります。私の研究に基づいて、私のlabel
オブジェクトに表示される画像を次のスクリプト(下記)で正常に更新する必要があります。しかし、私がself.ImageViewer.configure(image=self.imgToDisp)
と呼ぶと、TypeError(下記参照)が出ます。Tkinter(Python 3.5):ラベルオブジェクトで `.configure`を呼び出すときの型エラー
エラーの意味は完全にはわかりませんが、.configure
は文字列を期待していますか?他に誰もこの問題に遭遇していないようですので、私は以下のスクリプトで文法的に間違ったことをする必要があります。すべての入力をいただければ幸いです。
スクリプト:
def getImgs(self):
folderPath = filedialog.askdirectory()
self.imgArray, self.imagePaths = batchImpt.importAllImgs(folderPath)
halThrThsnd.saveAllData(self.imgArray)
im = Image.open(self.imagePaths[0])
self.imgToDisp = PhotoImage(im)
self.imageViewer.configure(image = self.imgToDisp)
self.imageViewer.image = self.imgToDisp
エラー:
あなたはもちろんself.imgToDisp = ImageTk.PhotoImage(im)
にself.imgToDisp = PhotoImage(im)
を変更する必要が
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\tkinter\__init__.py", line 1549, in __call__
return self.func(*args)
File "//mspm1bnas50s/home58/biegad1/Python Scripts/GUI_0_1.py", line 40, in getImgs
self.imageViewer.configure(image = self.imgToDisp)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\tkinter\__init__.py", line 1330, in configure
return self._configure('configure', cnf, kw)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\tkinter\__init__.py", line 1321, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
TypeError: __str__ returned non-string (type TiffImageFile)
完全に機能しました!それでは 'PhotoImage'と' ImageTk.PhotoImage'の違いは何ですか? – DeeWBee
違いは、tkinterはGIFイメージだけを扱うことができる点です。 'self.imgToDisp = PhotoImage(im)'と書くと、イメージを扱うようにtkinterに要求していますが、できません。ですから、 'PhotoImage()'と同じ名前のメソッドを持ち、 'ImageTk' @DeeWBeeモジュールに属するPILライブラリに依存する必要があります –