2013-03-19 46 views
8

我已經看遍了所有人,並且很震驚無法找到關於該主題的任何內容。X11中的Scrollwheel事件

我只想從一個簡單的鼠標滾輪捕獲事件。

回答

6

是的,這是令人難以置信的混亂。這是因爲X11決定將鼠標滾輪事件分配爲鼠標按鈕4和5.接收滾輪事件與接收鼠標按鈕事件(按照/usr/include/X11/X.h中的ButtonPress事件)相同。還要注意,頭文件定義了Button1..Button5。按鈕4和5對應於向上或向下 - 可能不是那個順序,你必須根據經驗確定。頭文件永遠不會提到滾輪事件。謝謝,更高級別的API(如GDK)明確提供按名稱的滾輪支持。

+0

也不是每個「滾動」的滾動都會產生一個按下和一個釋放事件,一個接一個。您可以放心地忽略這些按鈕的釋放事件。 – JvO 2013-03-25 19:04:23

+1

@MultimediaMike所以我最終得到了一個在此工作的機會。我之前最初的問題的一部分是我沒有捕獲正確的事件。兩個問題:指定滾動的數量(或僅僅是多個事件),以及水平滾動如何完成? – imallett 2014-05-14 22:38:07

+0

@imallet要處理水平滾動,您需要聽取對應於左側和右側的按鈕6和7。 – matteodelabre 2016-01-15 18:34:23