Qt的鼠標事件使用


在Qt中,使用鼠標事件是一件非常簡單的事情,只需要繼承QWidget類,並在protected:成員中添加對應的時間函數即可。本文列舉了Qt中鼠標的基本事件響應函數。

 
[cpp] 鼠標按鍵事件
  1. //鼠標按下事件
  2. void QWidget::mousePressEvent(QMouseEvent *event)
  3. {
  4. QString str="("+QString::number(event->x())+","+QString::number(event->y())+")";
  5. // ui->lineEdit->setText(tr("鼠標按下")+str);
  6. if(event->button()==Qt::LeftButton)
  7. {
  8. ui->lineEdit->setText(tr("鼠標左鍵按下:")+str);
  9. }else if(event->button()==Qt::RightButton)
  10. {
  11. ui->lineEdit->setText(tr("鼠標右鍵按下:")+str);
  12. }else if(event->button()==Qt::MidButton)
  13. {
  14. ui->lineEdit->setText(tr("鼠標中鍵按下:")+str);
  15. }
  16. }  
 
[cpp] 鼠標移動事件
  1. //鼠標移動事件
  2. void QWidget::mouseMoveEvent(QMouseEvent *event) 
  3. {
  4. QString str="("+QString::number(event->x())+","+QString::number(event->y())+")";
  5. ui->lineEdit->setText(tr("鼠標移動")+str);
  6. if(event->buttons()&Qt::LeftButton) 
  7. {
  8. ui->lineEdit->setText(tr("鼠標左鍵按下並移動")+str);
  9. }else if(event->buttons()&Qt::LeftButton) 
  10. {
  11. ui->lineEdit->setText(tr("鼠標右鍵按下移動")+str); 
  12. }else if(event->buttons()&Qt::LeftButton)
  13. {
  14. ui->lineEdit->setText(tr("鼠標中鍵按下移動")+str);
  15. }
  16. }
 
 
[cpp] 鼠標釋放事件
  1. //鼠標移動事件
  2. void QWidget::mouseReleaseEvent(QMouseEvent *event)
  3. {
  4. // ui->lineEdit->setText(tr("鼠標釋放")+str);
  5. if(event->button()==Qt::LeftButton)
  6. {
  7. ui->lineEdit->setText(tr("鼠標左鍵釋放:")+str);
  8. }else if(event->button()==Qt::RightButton)
  9. {
  10. ui->lineEdit->setText(tr("鼠標右鍵釋放:")+str);
  11. }else if(event->button()==Qt::MidButton)
  12. {
  13. ui->lineEdit->setText(tr("鼠標中鍵釋放:")+str);
  14. }
  15. }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM