我有一堆有標籤的對象,而canvas.find方法按預期返回所有對象的ID(請參閱底部附近的打印調用), canvas.move命令不會移動對象。Python - Tkinter - canvas.move不工作
我構建了一個測試腳本,其性能與我預期的相當,因此我知道該方法在理論上是合理的。
我在做什麼錯?
from Tkinter import *
master = Tk()
w = Canvas(master, width=1000, height=1000)
w.config(bg='white')
box=25
startX=100
startY=800
rows = 5
columns = 6
coords=[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]
widths=[[2,2,2,2,2,2],[2,2,2,2,2,2],[2,2,2,2,2,2],[2,2,2,2,2,2],[2,2,2,2,2,2]]
tagsList = [["a","a","a","a","a","a"],["a","a","a","a","a","a"],["a","a","a","a","a","a"],["a","a","a","a","a","a"],["a","a","a","a","a","a"]]
for j in range(1, 7):
for i in range(1, 6):
coords[j-1][i-1]=[(startX)+(box*(j-1)),(startY)+(box*(i-1)),(startX)+(box*j),(startY)+(box*i)]
colours=[["white","#660000","#863030","#ba4a4a","#de7e7e","#ffaaaa"],["white","#a34b00","#d46200","#ff7a04","#ff9b42","#fec28d"],["white","#dfd248","#fff224","#eefd5d","#f5ff92","#f9ffbf"],["white","#006600","#308630","#4aba4a","#7ede7e","#aaffaa"],["white","white","white","white","white","white"]]
w.create_text(startX+(box*columns)/2, startY-(box/1.2), text="Key:", justify = "center", font=("Helvetica", 20),tag="key")
w.create_text((startX-(box*1.5)),(startY+(box*(rows-1)/2)), text="No. \nDroids", justify = "center", font=("Helvetica", 16),tag="key")
w.create_text((startX+(box*columns)/2,(startY+box*(rows))+(box/1.5)), text="No. Sigs", justify = "center", font=("Helvetica", 16),tag="key")
w.create_text((startX+(box*(columns-4))-box/2,(startY+box*(rows-1))+(box/1.9)), text="5", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #5
w.create_text((startX+(box*(columns-3))-box/2,(startY+box*(rows-1))+(box/1.9)), text="4", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #4
w.create_text((startX+(box*(columns-2))-box/2,(startY+box*(rows-1))+(box/1.9)), text="3", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #3
w.create_text((startX+(box*(columns-1))-box/2,(startY+box*(rows-1))+(box/1.9)), text="2", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #2
w.create_text((startX+(box*(columns))-box/2,(startY+box*(rows-1))+(box/1.9)), text="1", justify = "center",font=("Helvetica", 16),tags=("key", "b")) #1
w.create_text((startX+box/2,(startY+box*(rows-5))+(box/2)), text="1", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #1
w.create_text((startX+box/2,(startY+box*(rows-4))+(box/2)), text="2", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #2
w.create_text((startX+box/2,(startY+box*(rows-3))+(box/2)), text="3", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #3
w.create_text((startX+box/2,(startY+box*(rows-2))+(box/2)), text="4", justify = "center", font=("Helvetica", 16),tags=("key", "b")) #4
for i in range(0, 5):
for j in range(0, 6):
w.create_rectangle(*coords[j][i],width=widths[i][j],tags=(tagsList[i][j],"key"),fill=colours[i][j])
w.tag_raise("b")
w.move(w.find_withtag('key'), 500, -250)
w.pack()
print str(w.find_withtag('key'))
w.update()
mainloop()
I unders這就是爲什麼我使用'print str(w.find_withtag('key'))'來證明這些標籤是由'w.find_withtag'收集的。 – 2012-03-07 18:38:35
RE:你的編輯 - Yupe。這樣可行。多麼令人沮喪。你怎麼知道這個標籤是直接處理的,而不是間接的(我嘗試的方式)?謝謝。 – 2012-03-07 18:41:42
@JayGattuso:剛剛閱讀文檔,這是所有... – PearsonArtPhoto 2012-03-07 18:43:15