Russian Qt Forum

Qt => Общие вопросы => Тема начата: muaddib1981@mail.ru от Сентябрь 22, 2009, 13:36



Название: Как получить состояние клавиш?
Отправлено: muaddib1981@mail.ru от Сентябрь 22, 2009, 13:36
Как отловить событие - если зажата клавиша выполнить какое-либо действие?
Для этого видимо надо знать состояние клавиш.


Название: Re: Как получить состояние клавиш?
Отправлено: SimpleSunny от Сентябрь 22, 2009, 15:11
Переопределить у виджета event(QEvent*).


Название: Re: Как получить состояние клавиш?
Отправлено: IGHOR от Сентябрь 25, 2009, 22:38
лучше перехватить keyPressEvent(QKeyEvent *event) и keyReleaseEvent(QKeyEvent *event)
например:
Код:
void myProgram::keyPressEvent(QKeyEvent *event)
{
 int key=event->key();
 if(key==Qt::Key_W)       QMessageBox::information(this,"","Нажата клавиша W");
 event->accept();
}

void myProgram::keyReleaseEvent(QKeyEvent *event)
{
 int key=event->key();
 if(key==Qt::Key_W)       QMessageBox::information(this,"","Клавиша W отпущена");
 event->accept();
}