Название: как узнать были ли нажатия клавиш Отправлено: qate от Июнь 24, 2014, 09:41 пусть, например, есть таймер на 5 сек, необходимо узнать были ли любые нажатия клавиш клавиатуры в течении этого времени
необходимое условие - должно работать если окно свернуто и фокус вообще в другом приложении Название: Re: как узнать были ли нажатия клавиш Отправлено: carrygun от Июнь 24, 2014, 10:10 Если надо вне приложения - то придется либо смотреть API системы (оконного менеджера), либо копать в сторону Qxt. Оно под Qt5 сейчас вообще собирается?
Название: Re: как узнать были ли нажатия клавиш Отправлено: GreatSnake от Июнь 24, 2014, 10:19 Если надо вне приложения - то придется либо смотреть API системы (оконного менеджера), либо копать в сторону Qxt. Оно под Qt5 сейчас вообще собирается? Вот только никак не "оконного менеджера")Название: Re: как узнать были ли нажатия клавиш Отправлено: qate от Июнь 24, 2014, 10:43 если api систем, то
1. для win нашел SetWindowsHookEx, вроде несложно 2. для linux нашел XGrabKey, но пока не ясно как им пользоваться жаль то нет внутри qt Название: Re: как узнать были ли нажатия клавиш Отправлено: GreatSnake от Июнь 24, 2014, 10:51 2. для linux нашел XGrabKey, но пока не ясно как им пользоваться Не то нашёл. Читай про XSelectInput.Название: Re: как узнать были ли нажатия клавиш Отправлено: Alex Custov от Июнь 24, 2014, 11:02 если имеется ввиду idle, то в Linux/X11 это делается через XScreenSaverQueryInfo()
Название: Re: как узнать были ли нажатия клавиш Отправлено: carrygun от Июнь 24, 2014, 11:04 Может все-таки лучше это (http://libqxt.bitbucket.org/doc/0.6/qxtglobalshortcut.html)?
Название: Re: как узнать были ли нажатия клавиш Отправлено: GreatSnake от Июнь 24, 2014, 11:07 Может все-таки лучше это (http://libqxt.bitbucket.org/doc/0.6/qxtglobalshortcut.html)? И чем ТС это поможет колинеобходимо узнать были ли любые нажатия клавиш клавиатуры в течении этого времени Название: Re: как узнать были ли нажатия клавиш Отправлено: qate от Июнь 24, 2014, 11:23 2. для linux нашел XGrabKey, но пока не ясно как им пользоваться Не то нашёл. Читай про XSelectInput.да, наверно XSelectInput, но чтото не соображу как использовать: 1. вызвать XSelectInput при старте программы 2. а далее гдето вызывать XNextEvent ? (в eventFilter основного окна?) Название: Re: как узнать были ли нажатия клавиш Отправлено: qate от Июнь 24, 2014, 11:28 если имеется ввиду idle, то в Linux/X11 это делается через XScreenSaverQueryInfo() чтото типа скринсервера и делаю ) но более простой - выключаю монитор про XScreenSaverQueryInfo почитаю - подойдет ли, да и на win тоже нужна поддержка |