Russian Qt Forum
Июля 04, 2025, 17:59
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
как узнать были ли нажатия клавиш
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: как узнать были ли нажатия клавиш (Прочитано 5561 раз)
qate
Супер
Offline
Сообщений: 1177
как узнать были ли нажатия клавиш
«
:
Июня 24, 2014, 09:41 »
пусть, например, есть таймер на 5 сек, необходимо узнать были ли любые нажатия клавиш клавиатуры в течении этого времени
необходимое условие - должно работать если окно свернуто и фокус вообще в другом приложении
Записан
carrygun
Гость
Re: как узнать были ли нажатия клавиш
«
Ответ #1 :
Июня 24, 2014, 10:10 »
Если надо вне приложения - то придется либо смотреть API системы (оконного менеджера), либо копать в сторону Qxt. Оно под Qt5 сейчас вообще собирается?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: как узнать были ли нажатия клавиш
«
Ответ #2 :
Июня 24, 2014, 10:19 »
Цитата: carrygun от Июня 24, 2014, 10:10
Если надо вне приложения - то придется либо смотреть API системы (оконного менеджера), либо копать в сторону Qxt. Оно под Qt5 сейчас вообще собирается?
Вот только никак не "оконного менеджера")
Записан
Qt 5.11/4.8.7 (X11/Win)
qate
Супер
Offline
Сообщений: 1177
Re: как узнать были ли нажатия клавиш
«
Ответ #3 :
Июня 24, 2014, 10:43 »
если api систем, то
1. для win нашел SetWindowsHookEx, вроде несложно
2. для linux нашел XGrabKey, но пока не ясно как им пользоваться
жаль то нет внутри qt
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: как узнать были ли нажатия клавиш
«
Ответ #4 :
Июня 24, 2014, 10:51 »
Цитата: qate от Июня 24, 2014, 10:43
2. для linux нашел XGrabKey, но пока не ясно как им пользоваться
Не то нашёл. Читай про XSelectInput.
Записан
Qt 5.11/4.8.7 (X11/Win)
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: как узнать были ли нажатия клавиш
«
Ответ #5 :
Июня 24, 2014, 11:02 »
если имеется ввиду idle, то в Linux/X11 это делается через XScreenSaverQueryInfo()
Записан
carrygun
Гость
Re: как узнать были ли нажатия клавиш
«
Ответ #6 :
Июня 24, 2014, 11:04 »
Может все-таки лучше
это
?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: как узнать были ли нажатия клавиш
«
Ответ #7 :
Июня 24, 2014, 11:07 »
Цитата: carrygun от Июня 24, 2014, 11:04
Может все-таки лучше
это
?
И чем ТС это поможет коли
Цитата: qate от Июня 24, 2014, 09:41
необходимо узнать были ли любые нажатия клавиш клавиатуры в течении этого времени
Записан
Qt 5.11/4.8.7 (X11/Win)
qate
Супер
Offline
Сообщений: 1177
Re: как узнать были ли нажатия клавиш
«
Ответ #8 :
Июня 24, 2014, 11:23 »
Цитата: GreatSnake от Июня 24, 2014, 10:51
Цитата: qate от Июня 24, 2014, 10:43
2. для linux нашел XGrabKey, но пока не ясно как им пользоваться
Не то нашёл. Читай про XSelectInput.
да, наверно XSelectInput, но чтото не соображу как использовать:
1. вызвать XSelectInput при старте программы
2. а далее гдето вызывать XNextEvent ? (в eventFilter основного окна?)
Записан
qate
Супер
Offline
Сообщений: 1177
Re: как узнать были ли нажатия клавиш
«
Ответ #9 :
Июня 24, 2014, 11:28 »
Цитата: Alex Custov от Июня 24, 2014, 11:02
если имеется ввиду idle, то в Linux/X11 это делается через XScreenSaverQueryInfo()
чтото типа скринсервера и делаю )
но более простой - выключаю монитор
про XScreenSaverQueryInfo почитаю - подойдет ли, да и на win тоже нужна поддержка
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...