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