在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);
- }
- }