2015-02-09 78 views
2

我試圖抓住單擊和雙擊我的身影。區分單擊和雙擊與matplotlib

如另一個answer所述,event包含event.dblclick,它至少在版本1.4.2中爲False或True,因此可以獲得雙擊。

唯一的問題是,區分單擊和雙擊並不容易,因爲雙擊該事件會被觸發兩次。第一次是event.dblclick=False,第二次是event.dblclick=True

有沒有解決這個問題的方法?我看到關於qt的相同問題在here討論。

回答

0

你需要一個軟件去抖動器。

基本上,您在第一次點擊時啓動計時器。如果計時器用完,則繼續處理單擊事件。如果在計時器內檢測到第二次點擊,則處理雙擊事件。

如果需要,這實際上可以擴展到n次點擊。我發現了三鍵事件的一些用途。

Here是在wxPython中實現的一個。應該比較容易移植到matplotlib。另外,如果你在Windows上,我建議使用用戶的雙擊速度爲你的計時器(控制面板:鼠標)。您可以訪問它:

get_double_click_time(): 
    """ Gets the Windows double click time in ms """ 
    from ctypes import windll 
    return int(windll.user32.GetDoubleClickTime()) 

我還沒有想出如何抓住從Mac或Linux平臺的D單擊時間(但我也沒有必要)。