• 10506阅读
  • 4回复

如何处理 当鼠标移动到QGraphicsItem上时的事件? [复制链接]

上一主题 下一主题
离线liujia_310
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-16
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
我重载void mouseMoveEvent(QGraphicsSceneMouseEvent *event)后却发现好象没有触发这个事件
请问该怎么做 》??
离线依依丫
只看该作者 1楼 发表于: 2009-04-16
你要的是鼠标滑过控件,而没有点击的消息吧?应该是下面这个
virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
鼠标离开控件时,是下面的消息
virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )
离线liujia_310
只看该作者 2楼 发表于: 2009-04-17
谢谢
离线mengtanr
只看该作者 3楼 发表于: 2009-04-27
如何处理点击鼠标,某个程序运行的事件?
运行的函数是什么呢?
离线fenger
只看该作者 4楼 发表于: 2010-03-12
引用第1楼依依丫于2009-04-16 18:01发表的  :
你要的是鼠标滑过控件,而没有点击的消息吧?应该是下面这个
virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
鼠标离开控件时,是下面的消息
virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )


我试上面两个函数和
void focusInEvent ( QFocusEvent * event );
都不起作用~
不知是哪出了问题`

void ButtonItem::mousePressEvent(QGraphicsSceneMouseEvent *event)//按下
{
    update();
    emit ButtonItemClick();//触发事件
    //QGraphicsItem::mousePressEvent(event);//有这句就不响应松开鼠标事件
}

void ButtonItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)//松开
{
  //  update();
    //emit ButtonItemClick();//触发事件
    qDebug("mouseReleaseEvent");
    QGraphicsItem::mouseReleaseEvent(event);
}
void ButtonItem::focusInEvent ( QFocusEvent * event )
{
    qDebug("focusInEvent");
}

void ButtonItem::hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
{
    qDebug("hoverEnterEvent");
}

鼠标按下和松开都可触发,惟有获得和失去光标不可触发,另外请问QGraphicsItem::mouseReleaseEvent(event);这句话有什么作用呢?
没有做不到,只有想不到~
快速回复
限100 字节
 
上一个 下一个