鼠标进入事件
该事件类型对应的枚举:QEvent::Enter
即鼠标进入到窗口/某个控件内部时,会触发该事件,该事件对应的子类是QEnterEvent
需要重写的函数:
void enterEvent(QEnterEvent* event) override;
鼠标离开事件
该事件类型对应的枚举:QEvent::Leave
即当鼠标离开窗口/某个控件内部时,会触发该事件
需要重写的函数:
void leaveEvent(QEvent* event) override;
使用场景
1.需要鼠标进入/离开某个窗口后,进行某些操作;比如鼠标进入/离开窗口,某些控件的文字改变,大小改变等等;那么就去重写上面2个函数,在这两个函数中完成你要的操作
2.自定义控件时,你希望这个控件有自己的鼠标进入/离开对应的操作,那么就在该自定义控件类中重写上面2个函数,来完成定制化的操作
举例
有一个自定义的MyLabel控件,继承自QLabel,鼠标在进入和离开MyLabel时其显示的文本都会改变
class MyLabel : public QLabel
{
Q_OBJECT
public:
explicit MyLabel(QWidget *parent = nullptr):QLabel(parent){}
protected:
void enterEvent(QEnterEvent* event) override
{
//鼠标每次进入这个MyLabel控件时,显示的文本改变
setText("鼠标进入!");
}
void leaveEvent(QEvent* event) override
{
//鼠标每次离开这个MyLabel控件时,显示的文本改变
setText("鼠标离开!");
}
signals:
};
根据你的需求举一反三,在鼠标进入和离开时还想做什么操作追加进去就行了。