问题标签 [qgraphicsscene]

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 投票
2 回答
1651 浏览

qt - QGraphics 场景放大和缩小

在这里,我再次担心如何在图形场景中放大和缩小 QGraphicsPixmapItem。我为此寻找了一种直接的方法,但在图形场景或像素图中找不到任何方法。有人可以帮我弄这个吗。我是否必须扩展 QGraphicsPixmapItem 并为此实现方法。

再次感谢您的帮助,我真的很感激。

~塔兰加

0 投票
1 回答
1150 浏览

qt - 扩展 QGraphicsScene

我正在扩展QGraphicsItem以添加到扩展的QGraphicsSene. 当我以正常方式将扩展项目添加到场景并将场景添加到图形视图时,它会显示图像,但是当我按如下方式添加图像时,它不会显示。有人可以检查一下并告诉我这个问题。

标题

资源

主要的

0 投票
1 回答
2803 浏览

qt - Qt QGraphicsScene如何分离选择和取消选择信号?

我在qt中创建一个应用程序,我遇到了一个问题。

我有一个 qgraphics 场景。我创建了场景,并在用户单击场景项目时执行了一些操作。

我可以检测到selectionChanged()信号,但是:

  1. 该信号被发出两次(一次用于单击的项目,一次用于先前选择的项目(取消选择),因此两个项目所需的操作发生两次)。

  2. 单击某个项目时,它仍处于选中状态,我无法再次单击它...(我尝试设置item->setSelected(false),但它陷入了选择/取消选择的无限循环...)。

任何人都知道如何解决这个问题?

我想要实现的是在取消选择时不执行任何操作,并且能够重新单击单击的项目并重新执行该操作。

0 投票
1 回答
1551 浏览

c++ - QGraphicsView不会在滚动事件上重新绘制

QT 4.7

我有一个 QGraphicsView / QGraphicsScene。场景有一个自定义的 QGraphicsItem 整个场景不是一次显示的,所以它有一个视口。

我正在覆盖我的 QGraphicsItem 的 paint() 方法,如下所示:

如果我尝试在 QPainter 上设置转换(即,如果我尝试旋转项目),视图将停止重新绘制场景作为对用于平移的水平或垂直滚动​​条的响应。当我放大或缩小时,视图也会停止调整场景大小。

如果我调整窗口大小或将窗口拖出屏幕然后回到屏幕上,视图将刷新。我一直在查看QPainter 文档以及示例,但我无法弄清楚我做错了什么。我假设这与坐标系有关。

0 投票
1 回答
629 浏览

qt - QGraphicsScene::clear() 方法仅在发布模式下崩溃

我从 QGraphicsScene 继承了我的场景。我在这个场景中添加了许多项目(QGraphicslineItem、QGraphicsItem、QGraphicsTextItem)。每当我尝试 QGraphicsSceneClear 方法时,它都会在发布模式下崩溃。它在调试模式下工作正常。

注意:有些项目有子项目和/或有指向其他项目的指针,所以当我删除它们时,我会在析构函数中处理它们(删除指向其他项目的指针等)。我猜指向其他项目的指针使它崩溃,但我不明白为什么它只在发布模式下崩溃。

释放模式下的调用堆栈没有用,但它确实在控制台上显示访问冲突。

0 投票
3 回答
1883 浏览

performance - QGraphicsScene,项目坐标影响性能?

使用下面的代码片段,我创建了一个包含 100.000 个矩形的场景。
表现不错;视图响应没有延迟。

现在第二个片段很烂

对于第一半场景元素,视图延迟响应鼠标和按键事件,而另一半似乎没问题?!?

前一个场景有sceneRect (x, y, w, h) = (0, -1250000, 40, 2499995)。
后一个场景有sceneRect (x, y, w, h) = (0, 0, 40, 2499995)。

我不知道为什么 sceneRect 会影响性能,因为 BSP 索引是基于相对项目坐标的。

我错过了什么吗?我在文档上没有找到任何信息,加上 Qt demo 40000 Chips也将元素分布在 (0, 0) 周围,没有解释选择的原因。

0 投票
2 回答
1623 浏览

qt - QGraphicsView - Linux 下的缓慢缩放性能

我正在制作一个程序,它将显示来自彼此并排的目录中的一些图像。

当我缩放图像以适应窗口的高度时(即 - QGraphicsPixmapItem->scale(...)),它在 Windows 中运行得相当好,但在 linux(Ubuntu 11.04)中运行速度慢得令人难以忍受。

如果图像未缩放,则两个系统的性能相似。

我不确定这是否与每个操作系统缓存内存的方式有关,因为当我在 Linux 下运行程序时,使用的内存始终保持不变,大约 5mb,而在 Windows 下它接近 15-30mb,具体取决于图像加载。

以下是相关代码:

0 投票
1 回答
2272 浏览

python - 如何使用 QGraphicsScene 和 QGraphicsView 在 PyQt 中分层图像

假设我有两个图像,图像 A 和图像 B。使用 QGraphicsScene 和 QGraphicsView,我如何将图像 A 绘制到背景,并将图像 B 放在图像 A 之上?

提前致谢。

0 投票
3 回答
2721 浏览

qt4 - 修复了 QGraphicsView 中的变换叠加

在我正在开发的基于 Qt 的应用程序中,我使用 QGraphicsView 在 2D 网格中显示传感器数据。另一方面,我想展示一个图例/调色板,以将网格中的颜色与值相关联。

用户可以缩放和平移传感器数据视图,但可以理解,调色板在视图中应该是静止的。因此,将调色板/图例放置在传感器视图场景中需要额外注意:应用逆用户变换。

但是,我宁愿将调色板/图例实现为一种(非交互式)覆盖层,并具有它自己的转换。这有可能吗?

0 投票
0 回答
415 浏览

qt - QGraphics 在paintEvent 中绘制自定义小部件的方式与在resizeEvent 中不同,反之亦然

我已经为我的图表编写了代码,它工作正常,但是当我需要调整它的大小时,问题就开始了。

调整大小事件不适合我的 QGraphicScene 到 QGraphicsView,但绘制事件中的相同代码可以正常工作。

我不能使用绘画事件,因为它在 symbian 中进行递归绘画(它在桌面上运行良好)。

如果我在第一次运行后调整窗口大小,调整大小事件可以正常工作,但是从第一次运行到程序结束,我不想让场景适合我的视图。

这是resizeEvent的图片:

在此处输入图像描述

和paintEvent:

在此处输入图像描述

两个事件的内部代码相同。

提前致谢。