Russian Qt Forum
Ноябрь 24, 2024, 11:34
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Нажатые кнопки мыши/клавиши в данный момент
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Нажатые кнопки мыши/клавиши в данный момент (Прочитано 5341 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Нажатые кнопки мыши/клавиши в данный момент
«
:
Декабрь 29, 2014, 13:28 »
Добрый день
К сожалению, использовать то что пришло c QEvent не выходит, нужно именно "как сейчас". Если "в Qt этого нет, нужно юзать нативняк", то доп вопрос: где это в Cocoa?
Спасибо
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #1 :
Декабрь 29, 2014, 13:36 »
не совсем понял, объясни подробнее.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #2 :
Декабрь 29, 2014, 13:49 »
Цитата: Пантер от Декабрь 29, 2014, 13:36
не совсем понял, объясни подробнее.
Без ожидания/использования событий узнать что данная кнопка мыши или клавиша нажаты. Напр GetAsyncKeyState в Вындоуз
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #3 :
Декабрь 29, 2014, 14:07 »
На крайний случай, можно хранить последнее состояние клавы/мыши, которое пришло с ивентом.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #4 :
Декабрь 29, 2014, 15:02 »
в гугле забанили что ли? находится за считанные секунды, см. методы с плюсиком:
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/index.html#//apple_ref/occ/clm/NSEvent
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #5 :
Декабрь 29, 2014, 16:14 »
Цитата: kambala от Декабрь 29, 2014, 15:02
в гугле забанили что ли? находится за считанные секунды, см. методы с плюсиком:
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/index.html#//apple_ref/occ/clm/NSEvent
Такого много, но ведь это все - дела NSEvent, т.е. данные в момент генерации события. Или это не так? Еще пример
Код
C++ (Qt)
void
mousePressEvent
(
QMouseEvent
*
e
)
{
// что-то делаем
..
Point
pos
=
QCursor
::
pos
(
)
;
}
Здесь полученное pos может быть совсем не то что event->pos(). Нужно то же для нажатий. На Carbon все просто: GetKeys(), GetCurrentButtonState. А на какаве что
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #6 :
Декабрь 29, 2014, 16:16 »
плюсовые (статические) методы NSEvent позволяют получить состояние в любой момент времени
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #7 :
Декабрь 29, 2014, 16:22 »
Цитата: kambala от Декабрь 29, 2014, 16:16
плюсовые (статические) методы NSEvent позволяют получить состояние в любой момент времени
Ага, вроде да
Цитировать
Objective-C
+ (NSEventModifierFlags)modifierFlags
Return Value
A mask of the current modifiers using the values in Modifier Flags.
Discussion
This returns the state of devices combined with synthesized events at the moment,
independent
of which events have been delivered via the event stream.
Ладно, буду пыхтеть оформлять
Спасибо
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #8 :
Декабрь 29, 2014, 16:29 »
там даже можно мониторить все события, включая события другим приложениям (раздел Monitoring Application Events)
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Нажатые кнопки мыши/клавиши в данный момент
«
Ответ #9 :
Декабрь 30, 2014, 08:36 »
Кнопки мыши и модифайеры сделал легко, а вот с клавишами немного застрял. Если "нажата ли именно эта" - то наверное хорошо через кварц CGEventSourceKeyState. А вот "нажата ли любая (но не modifier)" - ищу.
http://stofl.org/questions/5772680/how-to-get-keyboard-keys-state-on-mac-osx
Ничего так переводик
«
Последнее редактирование: Декабрь 30, 2014, 08:57 от Igors
»
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...