2011-06-08 152 views
0

我想我需要與QMainWindow一起使用XEvent使我的應用程序無法關閉,即使通過窗口管理器,任何人都可以提供一個例子嗎?Qt和X11全屏應用程序,它同時阻止窗口管理器

這就像一個全屏視頻遊戲,它阻止所有的鍵盤,鼠標按鈕。

P.S:QWidget的:: grabKeyboard()& & QWidget的:: grabMouse()當我嘗試切換到包含 「ALT_TAB」

感謝組合鍵的其他應用程序無法正常工作。

+0

可能有點遲,但我正在嘗試做同樣的事情。你是怎麼做到的? – Blender 2011-07-22 21:10:37

回答

2

要完全阻止來自其他應用的所有輸入,您需要使用XGrabServer而不是XGrabKeyboard/XGrabPointer組合。不知道Qt是否有一個API,但你總是可以直接調用Xlib函數。

然而,我反對它。如果應用程序由於某種原因不釋放抓取,則會卡住並需要轉到控制檯以殺死它。

+1

我討厭不能ALT + TAB的應用程序! – rubenvb 2011-06-08 11:19:42

+0

它的設計就是這樣,呵呵。但是,我抓住了整個屏幕,鼠標和鍵盤卡住了,我的應用程序沒有顯示,它是有線的,但無論如何它的工作! – daisy 2011-06-10 09:56:27

0

我認爲你可以重寫你的主窗口的的closeEvent(),並通過使用忽略拒絕的事件()方法描述here

+0

試過了,它不會阻塞OpenBox中的窗口管理器至少 – daisy 2011-06-10 05:27:53

相關問題