企业网站软件,东莞市建设工程信息服务协会,关于旅游网站策划书,软件开发计划模板一、鼠标
鼠标点击 mousePressEvent
鼠标释放 mouseReleaseEvent
鼠标移动 mouseMoveEvent
鼠标双击 mouseDoubleClickEvent
鼠标滚轮 QWheelEvent
二、键盘
键盘按下 keyPressEvent
键盘松开keyReleaseEvent 一、鼠标
#include QMouseEvent
鼠标点击 mouse…
一、鼠标
鼠标点击 mousePressEvent
鼠标释放 mouseReleaseEvent
鼠标移动 mouseMoveEvent
鼠标双击 mouseDoubleClickEvent
鼠标滚轮 QWheelEvent
二、键盘
键盘按下 keyPressEvent
键盘松开keyReleaseEvent 一、鼠标
#include QMouseEvent
鼠标点击 mousePressEvent
void Widget::mousePressEvent(QMouseEvent *event){ if(event-button() Qt::RightButton){}if(event-button() Qt::LeftButton){}
}
鼠标释放 mouseReleaseEvent
void Widget::mouseReleaseEvent(QMouseEvent *event){ if(event-button() Qt::RightButton){}if(event-button() Qt::LeftButton){}
}
鼠标移动 mouseMoveEvent
void Widget::mouseMoveEvent(QMouseEvent *event){this-move(QPoint());
}注
event-globalPos()//光标的位置
QCursor::pos()//光标的位置
this-pos()//界面左上角位置
鼠标双击 mouseDoubleClickEvent
void Widget::mouseDoubleClickEvent(QMouseEvent *event)
鼠标滚轮 QWheelEvent
void Widget::wheelEvent(QWheelEvent* event)
{
//使用 angleDelta() 来获取滚动角度增量QPoint angleDelta event-angleDelta();if (!angleDelta.isNull()) {int yDelta angleDelta.y(); // 获取垂直方向上的增量if (yDelta 0) {// 向上滚动qDebug() UP;}else if (yDelta 0) {// 向下滚动qDebug() DOWN;}//或者使用 pixelDelta() 来获取滚动像素增量QPoint pixelDelta event-pixelDelta();if (!pixelDelta.isNull()) {int yDelta pixelDelta.y(); // 获取垂直方向上的增量if (yDelta 0) {}else if (yDelta 0) {}}
}
注qt5是event-delta(); 二、键盘
#include QKeyEvent
键盘按下 keyPressEvent
void Widget::keyPressEvent(QKeyEvent *event){
//特殊按键 如按下CTRLif(event-modifiers() Qt::CTRL){}//普通按键 如按下Aif(event-key() Qt::Key_A){}else{ QWidget::keyPressEvent(event);//保持基类默认}
}
键盘松开 keyReleaseEvent
void Widget::keyReleaseEvent(QKeyEvent *event){switch (event-key()) {case Qt::Key_Up:if (!event-isAutoRepeat()) {} //使用isAutoRepeat是为了识别自动重复即事件发生一次就执行一次功能break;case Qt::Key_Left:if (!event-isAutoRepeat()) {}break;default:break;}// 调用基类的方法来处理默认行为QWidget::keyReleaseEvent(event);
}注isAutoRepeat
如
if (!event-isAutoRepeat()) {jump();}
只会在按下一次键盘后执行一次jump函数在游戏中就只会让角色跳跃一次。