我正在用python編寫一個屏幕鍵盤,雜亂無章。我已經得到了ClutterStage的XWindow對象,但是我找不到任何阻止窗口竊取焦點的屬性。基本上,它需要接受鼠標事件(點擊,移動等),而不是從它嘗試輸入的窗口竊取鍵盤焦點。任何想法? :)什麼XWindow屬性可以阻止窗口獲得焦點,同時讓它接收鼠標事件?
2
A
回答
1
通過輸入交付在X11上工作的方式,這不會發生:X11窗口必須具有焦點才能接收輸入事件 - 換句話說:事件僅傳遞到焦點窗口。
例如,GTK +中的輸入方法和可訪問性支持依賴於工具包通過特定的API(分別爲IM和ATK)向另一個進程發送數據和從另一個進程接收數據。 GNOME中的所有虛擬鍵盤都使用兩種方法來處理輸入事件。
在純X11上,您可以使用XTest擴展API將事件從虛擬鍵盤發送到調用它的應用程序。
1
您希望將WM_HINTS屬性中的輸入提示設置爲false,而不是添加WM_TAKE_FOCUS屬性。這將確保窗口管理器永遠不會將鍵盤焦點轉移到您的窗口,但不會阻止其他事件。參見ICCCM第4.1.7節。
相關問題
- 1. 打開的上下文窗口阻止接收鼠標事件,如何避免?
- 2. 在AS3中,什麼屬性決定InteractiveObject是否可以通過鼠標點擊來獲得舞臺焦點?
- 3. C#獲得焦點窗口?
- 4. NSColorPanel阻止鼠標事件
- 5. linux x11窗口管理器 - 阻止鼠標事件
- 6. 失去焦點後,XBAP中的彈出窗口停止接收除鼠標事件之外的任何內容?
- 7. 如何阻止鼠標拖動事件移動整個窗口? [可可]
- 8. 失去焦點後無法獲得鼠標點擊事件
- 9. 如何阻止鼠標退出窗口?
- 10. Flash應用程序接收沒有焦點的鼠標事件
- 11. 什麼能阻止mousePressEvent或事件過濾鼠標點擊事件?
- 12. JFrame停止接收鼠標事件
- 13. XWindow沒有收聽自己的屬性/窗口管理器
- 14. 捕獲鼠標鬆開事件/窗口
- 15. 接收鼠標中點擊事件
- 16. 如何從窗口中禁止全局鼠標點擊事件?
- 17. 使用鼠標拖/下拉時阻止點擊事件
- 18. 無法獲得鼠標點擊事件
- 19. 什麼可以阻止javascript定時器事件?
- 20. 有什麼辦法可以取消鼠標點擊事件
- 21. 防止其他窗口在Cocoa中接收焦點
- 22. 可可 - 只有特定窗口的鼠標事件? KeyDown事件?
- 23. PyQt4:停止窗口焦點
- 24. 剛剛獲得窗口焦點
- 25. 有什麼辦法可以配置窗口不改變焦點?
- 26. 鼠標焦點時窗體中的所有標籤都會更改屬性
- 27. 如何讓窗口在WPF中獲得焦點時得到通知?
- 28. 阻止QGraphicsView的某些鼠標事件
- 29. div阻止了我的鼠標事件
- 30. Javafx8 stackpane兒童阻止鼠標事件
除非它不工作(在Ubuntu 10測試),窗口仍然獲得焦點。 – cap 2015-08-01 02:17:53