谁能解释为什么我得到:-应用于椭圆的标签的输出是('paul','20','1993','1.1.1.1')但是在椭圆上找到的标签只有()()( 1,)(1,)
为什么还不通知前2个测试也返回ID为1?
import tkinter as tk
root = tk.Tk()
xtra1 = "20"
yrbl = "1993"
prefix = "1.1.1.1"
c = tk.Canvas (root)
id1 = c.create_oval(10,10, 120, 120, tags=("paul",xtra1, yrbl, prefix ),fill="red", )
t1 = c.gettags(id1)
test = c.find_withtag(xtra1)
test1 = c.find_withtag(yrbl)
test2 = c.find_withtag(prefix)
test3 = c.find_withtag("paul")
print ("tags applied to oval are",t1, "but tags found on oval are only ", test,test1,test2,test3,)
c.pack()
root.mainloop()
答案 0 :(得分:0)
标签不能是整数或看起来像整数的字符串,因为它们与项目ID不能区分。
当您执行c.find_withtag(xtra1)
时,tkinter会将其解释为找到一个ID为xtra1
中任何内容的项目,因为您要传递数字串。
在tcl / tk画布手册页中:
每个项目可能还具有与之关联的任何数量的标签。标签只是一个字符串,它可以采用除整数以外的任何形式。例如,“ x123”可以,但“ 123”不能。