QLabel编程——高亮教程
自定义重写的QLabel
- 当鼠标进入时

- 当鼠标离开时

MyQLabel.cpp
#include "MyQLabel.h"
#include <QMouseEvent>
MyLabel::MyLabel(QWidget *parent)
: QLabel(parent)
, m_mouseEnterFlag(false)
{
}
MyLabel::~MyLabel()
{
}
void MyLabel::enterEvent(QEvent *ev)
{
QWidget::enterEvent(ev);
m_mouseEnterFlag = true;
emit mouseEntered();
}
void MyLabel::leaveEvent(QEvent *event)
{
this->setStyleSheet("");
QLabel::leaveEvent(event);
}
MyQLabel.h
#ifndef MYQLABEL_H
#define MYQLABEL_H
#include <QLabel>
class MyLabel : public QLabel {
Q_OBJECT
public:
explicit MyLabel(QWidget *parent = nullptr);
~MyLabel();
protected:
void enterEvent(QEvent *ev) override;
void leaveEvent(QEvent *event)override;
private:
bool m_mouseEnterFlag;
signals:
void mouseEntered();
};
#endif // MYQLABEL_H
main.cpp
MyLabel *label = new MyLabel(this);
label->setText("test");
connect(label, &MyLabel::mouseEntered, [label]() {
label->setStyleSheet("background-color: #ffff99");
});
1302

被折叠的 条评论
为什么被折叠?



