Russian Qt Forum
Ноябрь 26, 2024, 07:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как узнать были ли нажатия клавиш  (Прочитано 5291 раз)
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« : Июнь 24, 2014, 09:41 »

пусть, например, есть таймер на 5 сек, необходимо узнать были ли любые нажатия клавиш клавиатуры в течении этого времени
необходимое условие - должно работать если окно свернуто и фокус вообще в другом приложении
Записан
carrygun
Гость
« Ответ #1 : Июнь 24, 2014, 10:10 »

Если надо вне приложения - то придется либо смотреть API системы (оконного менеджера), либо копать в сторону Qxt. Оно под Qt5 сейчас вообще собирается?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Июнь 24, 2014, 10:19 »

Если надо вне приложения - то придется либо смотреть API системы (оконного менеджера), либо копать в сторону Qxt. Оно под Qt5 сейчас вообще собирается?
Вот только никак не "оконного менеджера")
Записан

Qt 5.11/4.8.7 (X11/Win)
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #3 : Июнь 24, 2014, 10:43 »

если api систем, то
1. для win нашел SetWindowsHookEx, вроде несложно
2. для linux нашел XGrabKey, но пока не ясно как им пользоваться

жаль то нет внутри qt
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Июнь 24, 2014, 10:51 »

2. для linux нашел XGrabKey, но пока не ясно как им пользоваться
Не то нашёл. Читай про XSelectInput.
Записан

Qt 5.11/4.8.7 (X11/Win)
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Июнь 24, 2014, 11:02 »

если имеется ввиду idle, то в Linux/X11 это делается через XScreenSaverQueryInfo()
Записан
carrygun
Гость
« Ответ #6 : Июнь 24, 2014, 11:04 »

Может все-таки лучше это?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Июнь 24, 2014, 11:07 »

Может все-таки лучше это?
И чем ТС это поможет коли
необходимо узнать были ли любые нажатия клавиш клавиатуры в течении этого времени
Записан

Qt 5.11/4.8.7 (X11/Win)
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #8 : Июнь 24, 2014, 11:23 »

2. для linux нашел XGrabKey, но пока не ясно как им пользоваться
Не то нашёл. Читай про XSelectInput.

да, наверно XSelectInput, но чтото не соображу как использовать:
1. вызвать XSelectInput при старте программы
2. а далее гдето вызывать XNextEvent ? (в eventFilter основного окна?)

Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #9 : Июнь 24, 2014, 11:28 »

если имеется ввиду idle, то в Linux/X11 это делается через XScreenSaverQueryInfo()

чтото типа скринсервера и делаю )
но более простой - выключаю монитор

про XScreenSaverQueryInfo почитаю - подойдет ли, да и на win тоже нужна поддержка
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.146 секунд. Запросов: 23.