这是一个初学者学习的好地方,因为我就是初学者,今天为什么要把这个发出来呢,是因为我在做窗体的时候把系统自带的关闭按钮、最小化按钮、最大化按钮去掉。自己定义的。但是我发现没有鼠标移进和移出的事件,使程序看上去不美观,所以我才从写了这个 QPushButton
的leaveEvent(QEvent*event)
和enterEvent(QEvent*event)
方法。
class MyButton : public QPushButton(重写肯定要创建一个自己的类)
MyButton .h 文件
#ifndef MYBUTTON_H
#define MYBUTTON_H
#include <QObject>
#include <QWidget>
#include<QPushButton>
class MyButton : public QPushButton
{
Q_OBJECT
public:
MyButton(QWidget *pu = nullptr);
//信号
signals:
void leaveEvent_1();
void enterEvent_1();
protected:
void leaveEvent(QEvent*event);//重写鼠标出去时的方法
void enterEvent(QEvent*event);
};
#endif // MYBUTTON_H
MyButton.cpp文件
#include "MyButton.h"
MyButton::MyButton(QWidget *pu):QPushButton(pu)
{
}
void MyButton::leaveEvent(QEvent*event)
{
qDebug()<<"1";
emit leaveEvent_1();
}
//重写鼠标出去时的方法
void MyButton::enterEvent(QEvent*event)
{
qDebug()<<"1";
emit enterEvent_1();
}
跟大家说一下,这里为什么要触发信号,因为不能关闭创建一个派生QPushButton类,最下滑创建一个派生QPushButton类,我们可以通过不同对象触发的相同信号,选择自己的槽函数。这样就可以实现,一个派生QPushButton类实现自己鼠标移入移出事件。