键盘事件
重写KeyPressEvent事件函数:
virtual void keyPressEvent(QKeyEvent *event);
void GameWnd::keyPressEvent(QKeyEvent *event)
{
qDebug() << event->key();
switch(event->key())
{
case Qt::Key_Up:
break;
case Qt::Key_Down:
break;
case Qt::Key_Left:
break;
case Qt::Key_Right:
break;
}
}
相对应的有keyReleaseEvent
表示键盘松开事件。
鼠标事件
鼠标事件有:鼠标按下、鼠标移动、鼠标松开、双击、滚轮滚动。
重写相应的事件函数:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event);
void wheelEvent(QWheelEvent *event);
示例:鼠标按下事件:
void GameWnd::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
qDebug() << "左键" ;
}
else if(event->button() == Qt::RightButton)
{
qDebug() << "右键" ;
}
}
示例:鼠标滚轮事件:
void GameWnd::wheelEvent(QWheelEvent *event)
{
// delta()函数新版本中被弃用,通过angleDelta()函数的y()来判断
if(event->angleDelta().y() > 0)
{
qDebug() << "上滚";
}
else
{
qDebug() << "下滚";
}
}