我制作了一个button,在normal 状态下在button上draw一张图片,在active状态下draw另一张图片,要draw哪张图片在mouse的clicked和release时间中定义,然后draw上去。但是我发现了一个问题就是鼠标的点击一般持续时间都很短。有很多的时候来不及draw active的那个图片都要draw normal的图片了。只有点击得时间稍长才有效果。大虾有什么想法可以解决这个问题呢?感觉在嵌入式设备上这个问题肯定是总会遇到的
我使用的QT
代码如下:
我自己继承了QGraphicsWidget 写了QButton这样的类,在类中我重载了下面的方法来换图片,不知道是否合理:
void QButton::paint ( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter->drawPixmap(rect(), *_pixCurr, _pixCurr->rect());
}
void QButton::mousePressEvent ( QGraphicsSceneMouseEvent * event )
{
Q_UNUSED(event);
_pixCurr = _pixActive;
emit pressed();
update();
}
void QButton::mouseReleaseEvent( QGraphicsSceneMouseEvent *event)
{
Q_UNUSED(event);
_pixCurr = _pixNormal;
update();
}