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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: События нажатия клавиш  (Прочитано 4077 раз)
kadr
Гость
« : Январь 20, 2010, 14:23 »

Привет всем, мне нужно что бы программы отлавливала нажатия двух клавиш, то есть, например: Ctrl+X,Ctrl+A,Ctrl+V
У меня получается отловить одну клавишу:
Код:
bool lgot_rech::eventFilter(QObject *obj, QEvent *event)
{
       if (event->type() == QEvent::KeyPress)
         {
             QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
             if ((keyEvent->key()==Qt::Key_Control) && (keyEvent->key()==Qt::Key_X))
             {                
               .........................
             }
         }
}
не получается! Как нужно делать то?
Записан
edwardtrojan
Гость
« Ответ #1 : Январь 20, 2010, 14:31 »

скорее всего кто-нибудь другой перехватывает другие клавиши. Нужно проверять у элементов кто еще обрабатывает клаву
Записан
crossly
Гость
« Ответ #2 : Январь 20, 2010, 14:33 »

Ctrl надо брать из
Код:
Qt::KeyboardModifiers	modifiers () const
Записан
kadr
Гость
« Ответ #3 : Январь 20, 2010, 14:47 »

Ctrl надо брать из
Код:
Qt::KeyboardModifiers	modifiers () const
Пробую так:
if (keyEvent->key()==Qt::Key_Q & Qt::ControlModifier)
не получается!
Записан
kadr
Гость
« Ответ #4 : Январь 20, 2010, 14:51 »

Все понял, вот так работает:
if (keyEvent->key()==Qt::Key_Q & keyEvent->modifiers()==Qt::ControlModifier)
Записан
crossly
Гость
« Ответ #5 : Январь 20, 2010, 14:52 »

брр.....
Код:
if (keyEvent->key()==Qt::Key_Q && (keyEvent->modifiers() & Qt::ControlModifier))
Записан
kadr
Гость
« Ответ #6 : Январь 20, 2010, 14:57 »

брр.....
Код:
if (keyEvent->key()==Qt::Key_Q && (keyEvent->modifiers() & Qt::ControlModifier))
Спасибо за помощь!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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