mouseMoveEvent是鼠标移动,拖动按下左键的事件。
enterEvent是鼠标移入。
leaveEvent是鼠标移出
widget.h
1 #ifndef WIDGET_H 2 #define WIDGET_H
3
4 #include <QWidget>
5 #include<QEvent>
6 namespace Ui { 7 class Widget; 8 } 9
10 class Widget : public QWidget 11 { 12 Q_OBJECT 13 protected: 14 void enterEvent(QEvent *); 15 void leaveEvent(QEvent *); 16 public: 17 explicit Widget(QWidget *parent = 0); 18 ~Widget(); 19
20 private: 21 Ui::Widget *ui; 22 }; 23
24 #endif // WIDGET_H
widget.cpp
1 #include "widget.h"
2 #include "ui_widget.h"
3 #include<QDebug>
4 Widget::Widget(QWidget *parent) : 5 QWidget(parent), 6 ui(new Ui::Widget) 7 { 8 ui->setupUi(this); 9 } 10
11 Widget::~Widget() 12 { 13 delete ui; 14 } 15 void Widget::enterEvent(QEvent *) 16 { 17 qDebug()<<"鼠标移入"; 18 } 19 void Widget::leaveEvent(QEvent *) 20 { 21 qDebug()<<"鼠标移出"; 22 }
运行,放入鼠标 移出鼠标。
Starting E:\qtcreatorprojects\build-untitled2-Desktop_Qt_5_4_0_MinGW_32bit-Debug\debug\untitled2.exe...
鼠标移入
鼠标移出