2010-06-27 119 views
2

我試圖找到一種方法來獲取在Python中的curse模塊中的鼠標點擊事件。Python詛咒getmouse函數?

我讀了http://docs.python.org/library/curses.html的文檔,並建議做

c == curses.getch() 
if(c == curses.KEY_MOUSE): 
    curses.getmouse() 
    ... 

然而,這個「if語句」似乎永遠不會觸發...如果我試圖移動之外getmouse()函數「if語句」強制它返回鼠標信息,則返回

(devid,x,y,z,bstate) = curses.getmouse() 
_curses.error: getmouse() returned ERR 

還有其他想法嗎?

回答

5

您是否使用mousemask函數啓用了鼠標事件報告,並檢查了它的返回值以確保它確認它實際上可以報告一些鼠標事件?根據終端(或模擬器程序,現在;-),鼠標事件報告可能會也可能不會全部或部分;在任何情況下,它都默認在curses中被禁用(不只是在Python中,這是一個詛咒的一般想法;-),除非你直接通過mousemask調用明確地啓用它。

+0

啓用鼠標遮罩功能後,它按預期工作。感謝你的及時回覆。 – Patrick 2010-06-28 00:30:12

+0

@帕特里克,不客氣 - 很高興得到了幫助! – 2010-06-28 01:27:07