2016-02-13 72 views
0

我正在玩Tkinter和Python,我想點擊畫布上的兩個位置,然後在兩點之間劃一條線。等待在畫布上點擊第二次鼠標

使用.bind()方法,我可以輕鬆地調用一個函數,該函數需要光標的位置並設置第一個點,但我不知道如何使該函數等待第二次鼠標單擊。當然有解決方法,但我想知道是否可以讓一個函數無限期地等待,直到第二次點擊。

回答

2

有沒有必要等。在第一次點擊設置一個標誌,在第二次點擊檢查國旗

class Example(...): 
    def __init__(...): 
     self.first_coord = None 
     ... 
     canvas.bind("<1>", self.on_click) 
    def on_click(self, event): 
     if self.first_coord is None: 
      self.first_coord = (event.x, event.y) 
     else: 
      second_coord = (event.x, event.y) 
      <draw the line here> 
      self.first_coord = None 
+0

@布賴恩:應該是'else:',而不是'elee:',正確嗎?爲我清楚,但爲了更好的閱讀/完全正確的代碼,這將需要一個更改。 – R4PH43L