Qt 鼠标移入移出事件 enterEvent、leaveEvent

Qt 鼠标移入移出事件 enterEvent、leaveEvent

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:qtcreatorprojectsuild-untitled2-Desktop_Qt_5_4_0_MinGW_32bit-Debugdebuguntitled2.exe...

鼠标移入

鼠标移出