1
如何检测用户按下哪个按键?
试图搜索网页,但无法找到真正有趣的东西。
谢谢。映射按键事件qt
如何检测用户按下哪个按键?
试图搜索网页,但无法找到真正有趣的东西。
谢谢。映射按键事件qt
如果你想在全球范围内检测按键(用于应用程序快捷方式等很有用),你需要让你的QObject
S中eventFilter的应用程序之一,由第一超载QObject::eventFilter
:
bool cKeyPressEater::eventFilter(QObject *Object, QEvent *Event)
{
if (Event->type() == QEvent::KeyPress)
{
QKeyEvent *KeyEvent = (QKeyEvent*)Event;
switch(KeyEvent->key())
{
case Qt::Key_F1:
//do something
break;
default:
break;
}
}
}
.. 。而随后安装该对象作为eventFilter
您的应用程序:
QObject *KeyPressEater = GetYourEventFilterObject();
QCoreApplication::instance()->installEventFilter(KeyPressEater);
否则,@Mat上面说,只是超载QWidget::keyPressEvent
。您需要setFocusPolicy
,并且实际上有重点才能获得按键。
你看过[keyPressEvent](http://doc.qt.nokia.com/4.7/qwidget.html#keyPressEvent)吗? – Mat