Название: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 01, 2010, 00:55 Как можно присвоить нажатую клавишу к строке. Допустим, чтобы при нажатии клавиши, производился ее вывод?
Название: Re: keyPressEvent(), event->key() и QString Отправлено: SABROG от Февраль 01, 2010, 01:13 Уточни. Вывод куда? Какое значение ты хочеш получить?
- в виде текста, нажал на Ф - получил "Ф" - в виде сканкода с клавиатуры (HEX в строке) - в виде названия перечисления (Qt::Key_A) Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 01, 2010, 01:25 Уточни. Вывод куда? Какое значение ты хочеш получить? - в виде текста, нажал на Ф - получил "Ф" - в виде сканкода с клавиатуры (HEX в строке) - в виде названия перечисления (Qt::Key_A) в виде текста. нажал на "Ф" - получил "Ф" :). Вывод QMessageBox и запись в текстовый файл Название: Re: keyPressEvent(), event->key() и QString Отправлено: SABROG от Февраль 01, 2010, 01:53 QString QKeyEvent::text () const
Остальное в документации. Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 01, 2010, 01:56 QString QKeyEvent::text () const Хм..... Че-То я вообще не понял этой строки ??? Можно пояснение плизз, что она вообще сделала? Название: Re: keyPressEvent(), event->key() и QString Отправлено: Aleksey_Zh от Февраль 01, 2010, 11:36 Т.е. отлавливаешь событие, возникающее по QKeyEvent. А потом его конвертишь в текст
Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 01, 2010, 14:35 Т.е. отлавливаешь событие, возникающее по QKeyEvent. А потом его конвертишь в текст Вы знаете, видимо я в танке ;D Не пойму как это описать Код
Не так ли случайно? Просто вот так не работает) А иначе не понимаю как..странно Название: Re: keyPressEvent(), event->key() и QString Отправлено: crackedmind от Февраль 01, 2010, 14:39 G-virus
иди книжки читай... Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 01, 2010, 14:40 G-virus иди книжки читай... Какие книжки?? Я по-моему специально спрашиваю именно здесь, чтобы избежать чтения этих талмутов...ты еще предложи гуглом воспользоваться Название: Re: keyPressEvent(), event->key() и QString Отправлено: crackedmind от Февраль 01, 2010, 14:43 G-virus иди книжки читай... Какие книжки?? Я по-моему специально спрашиваю именно здесь, чтобы избежать чтения этих талмутов...ты еще предложи гуглом воспользоваться Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 01, 2010, 22:11 Все спасибо разобрался. Только интересно. Почему не выводить клавиши Shift, Ctrl, Alt, Enter и т.д.
И почему-то не получается хватать клавиши в фоновом режиме. То есть окно должно быть обязательно активно. Как это убрать? Название: Re: keyPressEvent(), event->key() и QString Отправлено: Akaiten от Февраль 02, 2010, 09:56 Почему не выводить клавиши Shift, Ctrl, Alt, Enter и т.д. Правильно, и не будет. Для этого см. QKeyEvent::modifiers(), например: Код
И почему-то не получается хватать клавиши в фоновом режиме. То есть окно должно быть обязательно активно. Как это убрать? Под Windows см. например SetWindowsHookEx. Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 02, 2010, 13:59 Спасибо! :), а вот еще по поводу QKeyEvent::modifiers(). Там же и остальные клавиши нужно хватать через него? Например F1, Home, Del и т.д. А получится вот таким образом?
Код
Название: Re: keyPressEvent(), event->key() и QString Отправлено: Akaiten от Февраль 02, 2010, 15:28 Там же и остальные клавиши нужно хватать через него? Например F1, Home, Del и т.д. Только Shift, Ctrl (Command on Mac), Alt, Meta key (Control on Mac, Win on Windows), Keypad button (???), Mode_switch key (on X11) Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 02, 2010, 19:43 Спасибо, разобрался! =)
Название: Re: keyPressEvent(), event->key() и QString Отправлено: G-virus от Февраль 03, 2010, 00:21 Цитировать Под Windows см. например SetWindowsHookEx. Выставляю такие параметры: SetWindowsHookEx(WH_KEYBOARD, NULL, NULL, NULL);. Но нет результата. Без окна, программа не ловит события клавы, может что-то не так выставил? НУ ПОМОГИИИТТЕЕЕ!!!! ??? |