2011-06-08 121 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

相关问题