我在Mac OSX Mountain Lion上的PyCharm IDE(Community Edition 3.4)上使用Python 2.7與Tkinter。我正在嘗試使用Tkinter構建一個簡單的跳棋遊戲。到目前爲止,我已經創建了一個棋盤,並且能夠創建遊戲片斷。我已經設法達到兩名選手可以在棋盤上拖動棋子的地步。但是,這裏的東西變得毛茸茸的 - 我無法找到如何將棋子限制在棋盤上的「黑色」方塊上。我無法在Stack Overflow上傳圖像,因爲我是一個沒有聲望的noobie。所以這裏是我創建的跳棋板的鏈接:http://imgur.com/rT77NPB如何使用Tkinter canvas.find_below?
在我創建的類中,當它們被按下時,我會使用「canvas.tag_bind」來希望代碼告訴我灰色或橙色遊戲片,點擊後會顯示片是在「紅色」方塊還是「黑色」方塊。
在我的類代碼,我有以下的「canvas.tag_bind」聲明:
canvas.tag_bind("oval", "<ButtonPress-1>", OnOverlappingRed)
一旦我的鼠標按壓超過一灰色或橙色件,執行下面的功能,以確定是否一塊是一個黑色的正方形或紅色正方形:
def OnOverlappingRed(event):
item_below = canvas.find_below("oval")
print item_below
print canvas.gettags(item_below[0])[0]
但是,當我執行我的計劃是這樣的輸出我得到的,當我按在板上灰色或橙色片:
(64,)
red
Tkinter不應該給我下面的那塊廣場索引嗎?我經歷了Tkinter文檔,那是「find_below」的確切定義 - 它返回了所討論項目下面的項目。
那麼這裏發生了什麼,以及如何使用我的代碼解決這個問題?
非常感謝您的建議。如何改變Tkinter的堆疊順序? – ragzputin
@ user2551765:使用'lift'和'lower'方法 –