如何在QWidget中實現mouseEnter和mouseLeave事件?如何在QWidget中實現mouseEnter和mouseLeave事件?
如果的MouseEnter給QWidget然後我需要設置背景顏色分爲灰色, 如果從QWidget的所述鼠標離開然後我需要設置的背景顏色是白色
我試圖
void enterEvent(QEvent *);
void leaveEvent(QEvent *);
在輸入內部&事件我正在使用bool varibale設置爲true & false。我打電話給QPainter事件更新();
下面的代碼:
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
移動鼠標,請幫我解決這個問題。如果有任何人有示例代碼,請提供給我......
你也可以聽懸停事件,它們自己執行update()。 Qt樣式表還允許根據懸停狀態進行不同的設置。 – 2010-12-02 12:21:26