QWidgetでmouseEnterイベントとmouseLeaveイベントを実装する方法は?QWidgetでmouseEnterイベントとmouseLeaveイベントを実装する方法は?
QWidgetのへのMouseEnter場合、iはQWidgetからmouseLeave次に、iが背景色を設定する必要がある場合は灰色、 に背景色を設定する必要が
白私はvoid enterEvent(QEvent *);
void leaveEvent(QEvent *);
を試し
の入力内に&イベントを残します。私はbool varibale set trueを使用しています& falseです。私はQPainterイベントupdate()を呼び出しています。以下
コード:私は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
にマウスを移動していたときに、私は次のエラーを取得しています
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();
}
この問題を解決するために私を助けてください。もしサンプルコードを持っている人がいたら...
あなたはまたに耳を傾けるでしたupdate()を行うホバーイベント。 Qtスタイルシートはまた、ホバーの状態に応じて異なる設定を可能にします。 –