在Qt中,使用鼠标事件是一件非常简单的事情,只需要继承QWidget类,并在protected:成员中添加对应的时间函数即可。本文列举了Qt中鼠标的基本事件响应函数。
[cpp] 鼠标按键事件
- //鼠标按下事件
- void QWidget::mousePressEvent(QMouseEvent *event)
- {
- QString str="("+QString::number(event->x())+","+QString::number(event->y())+")";
- // ui->lineEdit->setText(tr("鼠标按下")+str);
- if(event->button()==Qt::LeftButton)
- {
- ui->lineEdit->setText(tr("鼠标左键按下:")+str);
- }else if(event->button()==Qt::RightButton)
- {
- ui->lineEdit->setText(tr("鼠标右键按下:")+str);
- }else if(event->button()==Qt::MidButton)
- {
- ui->lineEdit->setText(tr("鼠标中键按下:")+str);
- }
- }
[cpp] 鼠标移动事件
- //鼠标移动事件
- void QWidget::mouseMoveEvent(QMouseEvent *event)
- {
- QString str="("+QString::number(event->x())+","+QString::number(event->y())+")";
- ui->lineEdit->setText(tr("鼠标移动")+str);
- if(event->buttons()&Qt::LeftButton)
- {
- ui->lineEdit->setText(tr("鼠标左键按下并移动")+str);
- }else if(event->buttons()&Qt::LeftButton)
- {
- ui->lineEdit->setText(tr("鼠标右键按下移动")+str);
- }else if(event->buttons()&Qt::LeftButton)
- {
- ui->lineEdit->setText(tr("鼠标中键按下移动")+str);
- }
- }
[cpp] 鼠标释放事件
- //鼠标移动事件
- void QWidget::mouseReleaseEvent(QMouseEvent *event)
- {
- // ui->lineEdit->setText(tr("鼠标释放")+str);
- if(event->button()==Qt::LeftButton)
- {
- ui->lineEdit->setText(tr("鼠标左键释放:")+str);
- }else if(event->button()==Qt::RightButton)
- {
- ui->lineEdit->setText(tr("鼠标右键释放:")+str);
- }else if(event->button()==Qt::MidButton)
- {
- ui->lineEdit->setText(tr("鼠标中键释放:")+str);
- }
- }