как реализовать события mouseEnter и mouseLeave в QWidget?
если mouseEnter в QWidget, тогда мне нужно установить цвет фона на серый, если mouseLeave из QWidget, то мне нужно установить белый цвет фона
Я пробовал
void enterEvent(QEvent *);
void leaveEvent(QEvent *);
внутри события входа и выхода, я использую bool varibale set true и false. и я вызываю событие QPainter update ();
, приведенный ниже код:
void Test::enterEvent(QEvent *)
{
_mouseMove=true;
update();
}
void Test::leaveEvent(QEvent *)
{
_mouseMove=false;
update();
}
void Test::paintEvent(QPaintEvent *)
{
QPainter painter;
painter.begin(&m_targetImage);
painter.setRenderHint(QPainter::Antialiasing);
if(_mouseMove){
painter.fillRect(QRect(0,0,width(),height()),Qt::white);}
else{
painter.fillRect(QRect(0,0,width(),height()),Qt::gray);}
painter.end();
QPainter p;
p.begin(this);
p.drawImage(0, 0, m_targetImage);
p.end();
}
Я получаю следующую ошибку при перемещении мыши в QWidget
QPainter::begin: Paint device returned engine == 0, type: 3
QPainter::setRenderHint: Painter must be active to set rendering hints
QPainter::end: Painter not active, aborted
Пожалуйста, помогите мне исправить это. если у кого-то есть образец кода, пожалуйста, предоставьте мне ....