Захват глобальной клавиатуры с помощью мыши в QT - PullRequest
1 голос
/ 04 сентября 2011

В моем приложении Qt, когда мое приложение свернуто или находится в трее, я хочу отслеживать глобальную клавиатуру и мышь, чтобы, когда пользователь использовал клавиши CTRL + щелчок правой кнопкой мыши, для моего приложения отображался статус, отображаемый как.

Как я могу это реализовать.

Ответы [ 2 ]

2 голосов
/ 04 сентября 2011

Есть много веских причин, чтобы не писать такого рода приложения (например, в тот момент, когда у вас есть две программы, обе из которых получают такое представление о глобальном поведении, они конфликтуют друг с другом и делают что-то случайное). Фактически, глобальное перехватывание Ctrl + щелчок правой кнопкой мыши и всплывающее окно приложения звучит как очень плохая идея, поскольку для многих программ уже определено важное поведение для этого.

Обычно лучше вместо этого позволить пользователю назначить горячую клавишу через механизмы операционной системы:

http://lifehacker.com/343328/create-a-keyboard-shortcut-for-any-menu-action-in-any-program

Или предложите пользователю использовать какую-нибудь стороннюю программу, которая уже разобралась в ней и позволит им перемещать конфликтующие глобальные горячие клавиши по своему вкусу:

http://lifehacker.com/software/hack-attack/turn-any-action-into-a-keyboard-shortcut-316589.php

Есть некоторые программы, которые занимаются предоставлением услуг одним нажатием кнопки, которые имеют довольно красивые метафоры пользовательского интерфейса, которые могут убедить вас в том, что они лучше, чем ловить щелчок правой кнопкой мыши. Quicksilver на компьютерах Mac было бы неплохо для поиска идей.

Если вы все равно собираетесь заняться этим, вам, вероятно, придется делать это по-разному для каждой платформы. В Windows вам понадобится global WH_MOUSE hook:

http://msdn.microsoft.com/en-us/library/ms644960(VS.85).aspx

0 голосов
/ 25 февраля 2013

Хотя я согласен с HostileFork, это может вам помочь: http://libqxt.bitbucket.org/doc/tip/qxtglobalshortcut.html

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