Мультимедиа клавиши |
Здравствуйте, гость ( Вход | Регистрация )
Мультимедиа клавиши |
urandom |
25.11.2011, 22:28
Сообщение
#1
|
Студент Группа: Участник Сообщений: 24 Регистрация: 6.11.2011 Пользователь №: 2983 Спасибо сказали: 1 раз(а) Репутация: 0 |
приветствую.
хотел бы узнать, как можно в Qt обработать нажатие на мультимедийные клавиши? погуглил, информации мало. печалька.. может кто уже сталкивался? если не мультимедиа, то хотя бы как отловить нажатия на стандартные кнопы (глобально)? |
|
|
BlueIceScream |
26.11.2011, 0:07
Сообщение
#2
|
Студент Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: 3 |
Qt::Key_MediaPlay 0x01000080
Qt::Key_MediaStop 0x01000081 Qt::Key_MediaPrevious 0x01000082 Qt::Key_MediaNext 0x01000083 Qt::Key_MediaRecord 0x01000084 Qt::Key_MediaPause 0x1000085 Qt::Key_MediaTogglePlayPause 0x1000086 Также : "Key events for multimedia keys are ignored by default. You should call accept() if your widget handles those events." Для глобального отлавливания событий нажатия клавиш клавиатуры, придется использовать глобальные ловушки. Для каждой операционной системы делается это различными способами. Кросплатформенной реализации в Qt для таких методов нет. Другое дело если предполагается использование вашей программы в операционной системе без потери фокуса. Тогда отлавливание глобальных событий нажатия клавиш сводится к отлавливанию их на локальном (в очередях событий вашей программы) уровне. Для упрощения создания кросплатформенности вы можете перенести процедуры создания глобальных ловушек в отдельные библиотеки. Глобальные ловушки дадут вам возможность использовать возможности системы по определению медиа клавиш на клавиатуре. Это значит что вы сможете обрабатывать эти клавиши, даже тогда, когда возможностей по определению их с помощью констант Qt будет недостаточно. |
|
|
urandom |
26.11.2011, 11:08
Сообщение
#3
|
Студент Группа: Участник Сообщений: 24 Регистрация: 6.11.2011 Пользователь №: 2983 Спасибо сказали: 1 раз(а) Репутация: 0 |
огромное спасибо, а можно пример подобной ловушки?
|
|
|
BlueIceScream |
26.11.2011, 12:34
Сообщение
#4
|
Студент Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: 3 |
Вот пример для операционной системы Windows:
http://www.codeproject.com/KB/DLL/keyboardhook.aspx Для системы XWindow придется использовать функции из XLib. Например XGrabKey http://tronche.com/gui/x/xlib/input/XGrabKey.html |
|
|
Sokoloff |
29.11.2011, 12:27
Сообщение
#5
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
огромное спасибо, а можно пример подобной ловушки? По рукам ходят 2 версии глобальных хоткеев на Qt. Первая - кусок libqxt, вторая ЕМНИП выдрана из PSi. Вот PSi-хованная версия Использовать очень просто:
|
|
|
Текстовая версия | Сейчас: 23.11.2024, 12:13 |