텍스트 객체 등 다양한 객체를 추가하는 캔버스가 있습니다. 각 캔버스 하위 객체에 "태그"속성을 추가합니다.Canvas 객체 태그 : 원래 제공 한 유형이 아닙니다.
import tkinter
window = tkinter.Tk()
myCanvas = tkinter.Canvas(window, width = 400, height = 400)
myCanvas.pack()
textItemTags = { "id": 1, "name": "test" }
textItemContents = "asdf"
textItem = myCanvas.create_text(1, 1, tags = textItemTags, text = textItemContents)
# some method later on now tries to retrieve tag values for a selected canvas child object...
searchTags = myCanvas.gettags(textItem)
print(searchTags) # array of strings
print(isinstance(searchTags[0], str)) # true..?
문제점 : 아래의 예에서, I이 절대적으로지지 된 "태그"속성에 대한 딕셔너리를 추가 캔버스 객체의 gettags
방법을 사용 searchTags
비고 리턴 결과 - 이제이 나타내는 문자열의 배열은 각각의 광고 항목 (''id ': 1,'name ':'test '', '...')은 원래 전달 된 실제 사전이 아닙니다.
내 질문은 다음과 같습니다. 내가 전달한 원래의 dict (또는 최소한 복제)이 아닌 현재 문자열 배열. 그리고 2) 정확하게 문자열 배열을 구문 분석하여 정확히 원래 내가 create_text
메서드에 전달한 것을 다시 빌드 할 수 있습니까?
면책 조항 : Python 및 tkinter에 관한 새로운 개념이지만 캔버스 하위 객체에 대한 태그 값 검색 결과는 저에게 이상한 것처럼 보입니다. Tk canvas documentation에 따르면
감사합니다. tkinter에 대한 문서는 나오기가 어렵 기 때문에 링크를 저장하겠습니다. "태그는 단지 문자열"이고 "이 항목에 첨부 할 태그 또는 여러 태그가 포함 된 튜플"이 이제는 의미가 있습니다. –
"이며 정수 이외의 형식을 사용할 수 있습니다." 방금이 부분을 알아 챘습니다. 방금 숫자 문자열 태그를 할당하고 다시 잘 읽었습니다. 예 : str "1". 이 일을하면서 무엇을 두려워해야합니까? –
@ bob-the-destroyer, 태그가 str이면 걱정할 필요가 없습니다. – falsetru