首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QGraphicsView接受的事件

QGraphicsView接受的事件
EN

Stack Overflow用户
提问于 2010-02-01 16:44:09
回答 1查看 845关注 0票数 1

我正在使用Qt Graphics View框架创建一个场景,并将多个视图附加到同一场景,其中这些视图呈现一个3D开放图场景作为背景,而2D图形则是一种覆盖。

我尝试在我的OverlayViewport类(继承QGraphicsView)中截取鼠标/键事件,并相应地导航3D场景。下面是一个示例事件处理程序:

代码语言:javascript
复制
void OverlayViewport::mouseMoveEvent( QMouseEvent * event )
{
    QGraphicsView::mouseMoveEvent(event);
    if (event->isAccepted())
    {
        return;
    }

    3D_Scene_Stuff_Code();
}

但事件总是被接受的,因此我的3D场景填充代码永远不会执行。如果我删除了isAccepted()检查,我的代码总是会执行。

我想要实现的是,让场景做它自己的事情,比如选择,拖动vs,如果它什么都不做(不接受事件),就做我的3D事情。

所以,这里是我的问题:

1-我走错路了吗?

2-如果事件不被场景接受,我是否应该将事件转发到视图附加的场景,并执行我的工作?

3-如果不是2,我应该如何继续?

诚挚的问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-15 17:08:47

我找到了罪魁祸首这似乎是Qt中的一个bug。QGraphicsView没有适当地设置mouseMoveEvents的accepted标志。这只发生在mouseMoveEvents上,其他事件都没问题。已上报给Qt,正在等待修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2175503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档