Полноэкранное приложение Qt и X11, которое одновременно блокирует Window Manager - PullRequest
0 голосов
/ 08 июня 2011

Я думаю, что мне нужно использовать XEvent вместе с QMainWindow, чтобы мое приложение не могло закрыться даже с помощью Window Manager. Кто-нибудь может привести пример?

Это как полноэкранная видеоигра, которая блокирует все клавиатуры, кнопки мыши.

P.S: QWidget :: grabKeyboard () && QWidget :: grabMouse () не работает, когда я пытаюсь переключиться на другие приложения с комбинациями клавиш, такими как "ALT_TAB"

Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

Чтобы полностью заблокировать все входы из других приложений, вам нужно использовать комбинацию XGrabServer, а не XGrabKeyboard / XGrabPointer. Не знаю, есть ли у Qt API для этого, но вы всегда можете вызвать функцию Xlib напрямую.

Однако я рекомендую против этого. Если приложение по какой-то причине не освобождает захват, вы застряли и должны убежать в консоль, чтобы убить его.

0 голосов
/ 08 июня 2011

Я думаю, что вы можете переопределить closeEvent () вашего главного окна и отклонить событие, используя ignore () метод, как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...