问题标签 [qgraphicsview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1725 浏览

c++ - Qt:mouseMoveEvent 并干扰子对象的 hoverEnterEvent

QGraphicsView用来创建一种电路编辑器,其中有元素,有连接器。应该可以用电线连接这些连接器。但是,我有一个问题,当我从一个连接器拖动到另一个连接器时,Qt 抓住鼠标,而其他连接器停止接收hoverEnterEvent. 顺便说一句,在悬停连接器上调整大小,因此更容易击中它们。

再一次,是否可以在拖动时不抓住鼠标?

我在 Windows 上使用过 Qt 4.5。

根据要求,这里有一些来源: http: //pastebin.com/m422b9495

0 投票
3 回答
5158 浏览

qt - QGraphicsView - 如何禁用鼠标和键盘滚动

在我的应用程序中,我添加了 pixmap 的 QGraphicsScene,所有内容都在 QGraphicsView 中查看,滚动条关闭。程序窗口比像素图小,当我按箭头键或移动鼠标滚轮时,像素图正在移动。

如何禁用它,即使像素图大于窗口,它也不会被键盘或鼠标移动,除非我为此使用我的事件?

(我试图将交互属性设置为 false,但没有奏效)

0 投票
2 回答
14787 浏览

c++ - 我应该如何使用带有布局和小部件的 QGraphicsScene

我正在 Qt4 中创建一些图形数据显示小部件,我很想使用它,为数据项QGraphicsScene创建s 等。QGraphicsItem

但是,我想添加一些控件层(例如滚动条、缩放+其他按钮 - 我想使其具有与例如 Google Maps 类似的样式,即数据将显示在整个小部件中,并且按钮将显示在它们的顶部)到小部件。所以我认为将它们添加到场景中可能是可行的(也许作为QGraphicsGroupItem将显示在数据上的 a 的孩子)。但是我希望它们在调整整个小部件的大小时移动和调整大小,所以我应该使用 aQGraphicsLayout来管理它们。但此时,我发现事情相当复杂。

问题是,当使用 时QGraphicsLayout,以下约束成立:

  1. QGraphicsWidget布局只能管理a
  2. QGraphicsLayout只能用于管理 a 的子级QGraphicsWidget

这意味着我必须将我的控件创建为QGraphicsWidgets,向数据小部件添加顶级QGraphicsWidget,并自己管理这个顶级小部件的大小。

所以我想问:

  1. 经典的方法(即,对所有控件使用普通的旧小部件,并且QGraphicsScene仅用于显示数据)不是更合理吗?

  2. 在这种情况下使用有什么好处QGraphicsScene(性能或简单性......)?

  3. 我应该如何QGraphicsScene利用它的优势?

0 投票
5 回答
12602 浏览

qt - 使用自定义 QGLWidget 调用 Qt 的 QGraphicsView::setViewport

我以前从 QGLWidget 派生,如下所示:

但是,我发现如果我尝试使用我的自定义 QGLWidget 作为视口来初始化 QGraphicsView,则不会调用 initializeGL(在 Qt 库中设置断点,QGLWidget::initializeGL() 在创建时也不会被调用)。

放置当前驻留在 MyGLWidget::initializeGL() 中的代码的正确位置在哪里?

0 投票
3 回答
859 浏览

qt - 在 Qt 的两个 QGraphicScene 实例中共享相同的模型

我有一个使用 QGraphicsScene 对象显示图表编辑器的应用程序。我想创建同一个对话框的只读​​版本,但用户可以同时看到这两个版本。

当我创建 2 个 QGraphicsScene 实例并在第二个实例上使用 addItem 时,它会从第一个实例中删除所有项目。Qt 是否支持场景之间的任何类型的模型共享?我唯一的选择是拥有相同的场景并尝试自定义视图吗?后来的一个似乎不起作用,因为对象选择信息在共享的图形项中,所以如果我禁用它们上的标志,它们在两个视图中都变为只读。任何建议表示赞赏。谢谢。

0 投票
5 回答
14003 浏览

c++ - QGraphicsView 和 QGraphicsItem:缩放视图矩形时不要缩放项目

我正在使用 Qt 的QGraphicsView- 和 -QGraphicsItem子类。有没有办法在视图矩形更改时不缩放视图中项目的图形表示,例如放大时。默认行为是我的项目相对于我的视图矩形进行缩放。

我想可视化 2d 点,这些点应该由一个细长的矩形表示,在放大视图时不应缩放。请参阅典型的 3D 建模软件以供参考,其中顶点始终以相同大小显示。

谢谢!

0 投票
2 回答
938 浏览

c++ - QGraphicsTextItem 的 QPixmap

如何将 QGraphicsTextItem 转换/绘制为 QPixmap?

0 投票
6 回答
20220 浏览

c++ - 获取 QGraphicsView 的可见矩形?

我已经用这个把头发拉了好几个小时了。这里有一个关于它的线程,但似乎没有任何效果。QGraphicsView::rect() 将返回宽度和高度,但lefttop值设置不正确(始终为 0 - 忽略滚动量)。我想要它在场景坐标中,但它应该很容易从任何系统转换。我不知道什么horizontalScrollBar()->value()和 vert 正在返回......似乎是毫无意义的胡言乱语。


@fabrizioM :_

0 投票
3 回答
2009 浏览

python - 具有自动放置物品的 QGraphicsView

我想使用 QGraphicsView 编写一个资产浏览器。它与使用 QGraphicsView 和 QGraphicsItems 的示例有点不同,因为我只想要一个滚动条,并且我希望项目在视口大小发生变化时自动移动。例如,当视口宽度大到足以显示 4 个资源时,它们应该显示如下:

但是当视口缩小并且只能连续包含 3 个时,它应该像这样显示它们:

我不想自己移动这些资产并让图形视图管理它们。有可能吗?

我曾经写过这样的东西,但是使用QWidget和paintEvent,自己绘制所有资产并跟踪可以连续显示多少资产。使用 QGraphicsView 可以更简单吗?

0 投票
1 回答
2076 浏览

qt - 在 Qt 图形视图中获取恒定大小项目的边界框

我需要获取设置了标志的QGraphicsItems的边界框(在场景空间中)。QGraphicsItem::ItemIgnoresTransformations

根据文档,您需要使用QGraphicsItem::deviceTransform()来做到这一点。我试过这个:

但是出了点问题,边界框看起来更小,并且在项目的右侧很远......