我有一個畫布,我添加了各種對象,例如文本對象等。我爲每個畫布子對象添加「標記」屬性。在下面的例子中,我添加了一個字典爲這是絕對支持的「標籤」性質:畫布對象標籤:不是我最初給它的類型
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..?
問題:使用Canvas對象的gettags
方法searchTags
注返回的結果 - 這是一個字符串數組現在代表每個訂單項(「'ID':1,'名稱':'測試'」,「...」),不是最初通過的實際字典。
我的問題是:1)爲什麼是這個現在是一串字符串,而不是我傳入的原始字典(或至少克隆);和2)我可以解析這個字符串數組以完全重建我最初傳遞給create_text
方法的可靠方法嗎?
免責聲明:相對較新的Python和tkinter,但檢索canvas子對象的標記值的結果對我來說似乎很奇怪。
感謝。 tkinter的文檔很難來,所以我會保存你的鏈接。 「標籤只是一個字符串」和「附加到這個項目的標籤,或包含多個標籤的元組」現在是有道理的。 –
「,它可以採用除整數以外的任何形式。」剛注意到這部分。我只是分配了一個數字字符串標籤並將其讀回正常。例如:str「1」。這樣做我有什麼擔心? –
@ bob-the-destroyer,只要標籤是'str',你就不用擔心它。 – falsetru