사용자가 Treeview 위젯에서 항목을 선택할 때마다 캔버스 위젯에 .png를 표시하는 코드를 작성하고 있습니다. 코드를 실행하면 selectedItems 함수에 오류가 발생했을 때만 캔바스에 이미지가 표시됩니다. 지금까지는 오류 일 수는 있지만 오류가 발생하지 않는 한 이미지는 표시되지 않습니다. 시간 지연 삽입 시도하고 디버깅 도구를 사용하지만 여전히 왜 이런 일이 이해가되지 않습니다. 오류가 없으면 Treeview는 선택된 항목에 대한 색인을 계속 생성하지만 캔바스는 그림으로 업데이트되지 않습니다. 누군가 나를 교육시킬 수 있습니까?tkinter canvas가 오류로만 업데이트 됨
Traceback (most recent call last):
File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File ".\front_end_DataManager.py", line 21, in selectedItems
a= 'hello' + 7
TypeError: must be str, not int
나는 형식 오류 하나 알고 있어요 :
import tkinter as tk
import tkinter.ttk as ttk
from PIL import Image, ImageTk
def selectedItems(event):
item = tree.selection()
item_iid = tree.selection()[0]
parent_iid= tree.parent(item_iid)
directory= r"..."
if tree.item(parent_iid, "text") != "":
imageFile= directory + tree.item(item_iid, "text")
image_o= Image.open(imageFile)
image_o.thumbnail([683, 384], Image.ANTIALIAS)
image1= ImageTk.PhotoImage(image_o)
canvas1.create_image((0, 0), anchor= "nw", image= image1)
a= 'hello' + 7
tree.bind("<<TreeviewSelect>>", selectedItems)
이
내가 얻을 오류입니다. 이미지를 표시하는 것은 의도적 인 일입니다. 나는 문제가 tkinter 기능을 호출하는 것 같아요. 어떤 아이디어?
페이지 The Tkinter PhotoImage Class의 말에 항상 넣어 전체 오류 메시지 문제 (역 추적) (텍스트로하지 스크린 샷). 다른 유용한 정보가 있습니다. – furas
최소한 _ 우리는 업로드 된 코드로 오류를 재현 할 수 있어야합니다. 내 추측으로는 결국 [이미지에 대한 전역 참조를 사용해야 할 시점] (https://stackoverflow.com/q/3359717/7032856)에 도달하게됩니다. – Nae
질문 게시 에티켓에 대한 지침을 주셔서 감사합니다. 좀 더 간결하고 오류 메시지를 포함하도록 내 질문을 업데이트했습니다. –