• 5554阅读
  • 5回复

制作button遇到的问题 [复制链接]

上一主题 下一主题
离线marslee_suc
 
只看楼主 正序阅读 楼主  发表于: 2008-12-03
— 本帖被 XChinux 执行加亮操作(2008-12-04) —
我制作了一个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();
}
离线lj_0212

只看该作者 5楼 发表于: 2008-12-05
是触摸屏啊!那就别考虑enterevent!css有效果么?验证结果还是得晒出来呀!
离线marslee_suc
只看该作者 4楼 发表于: 2008-12-04
使用CSS是一个办法我 实验一下,换EVENT效果还不清楚,主要是触摸屏没有鼠标,我再进一步验证
离线lj_0212

只看该作者 3楼 发表于: 2008-12-04
要不然换一个类来继承,找一个可以用enterevent的。可能体验效果会好点。
离线lj_0212

只看该作者 2楼 发表于: 2008-12-04
我觉得没必要钻这个牛角尖。这段时间总归很短,除非手动延迟,不然还是看不出来变化!
离线lazybone
只看该作者 1楼 发表于: 2008-12-04
CSS 吧
快速回复
限100 字节
 
上一个 下一个