다양한 이미지를 표시해야하는 객체가 label
입니다. 내 연구를 바탕으로 다음 스크립트 (아래)가 내 label
개체에 표시된 이미지를 성공적으로 업데이트해야합니다. 그러나 self.ImageViewer.configure(image=self.imgToDisp)
을 호출하면 TypeError가 발생합니다 (아래 참조).Tkinter (Python 3.5) : 레이블 객체에서`.configure`를 호출 할 때 TypeError가 발생했습니다.
나는 무엇이 오류의 의미인지 전혀 모르겠다. 그러나 .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' 모듈에 속한 PIL 라이브러리에 의존해야합니다 @DeeWBee –