【问题标题】:Qt: display qgraphicsitem in a widgetQt:在小部件中显示 qgraphicsitem
【发布时间】:2015-05-27 22:53:56
【问题描述】:

我有一个包含 QGraphicsItems 的 QGraphicsScene。单击此类项目时,我会打开一个对话框。我现在希望该项目显示在对话框的某个区域中。

我尝试了一个 QGraphicsView(在对话框中)并将它“指向”它工作得最完美的项目。问题是,可以单击对话框中的项目来打开一个新对话框。

所以我的问题是:有没有一种简单的方法可以告诉 QGraphicsView 忽略任何输入事件?如果没有,是否有一种简单的方法可以在小部件中显示 QGraphicsItem?

【问题讨论】:

  • 感谢您的回答,但这不是解决方案。如果我为 QGraphicsView 安装 eventFilter,我会得到事件 10、11、24、25 等,但不会得到 QEvent::GraphicsSceneMouseDoubleClick (158) 或 GraphicsSceneWheel (168)。这些事件似乎是直接转发给 QGraphicsItem。

标签: qt qgraphicsview qgraphicsitem


【解决方案1】:

我觉得自己好傻……

QGraphicsView::setInteractive(false) 成功了。 我仍然可以使用鼠标滚轮移动图标,但可以通过使用 setSceneRect() 限制场景矩形来避免这种情况

【讨论】:

    【解决方案2】:

    您可以在 QGraphicsView 上安装一个事件过滤器,它会忽略输入事件。 Qt documentation 状态:

    在你重新实现这个函数时,如果你想过滤掉事件,即停止它被进一步处理,返回true;否则返回 false。

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多