问题标签 [qgraphicsitem]
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.
c++ - QGraphicsItem 重绘
我想定期更改矩形内的文本颜色。这是我的试验:
此代码无法正常工作。怎么了?
qt - 在 QGraphicsView 上绘制小部件(例如按钮)
如何在 QGraphicsView 上绘制交互式小部件,例如 QButtons 和 Line Edits?例如,我在图像编辑应用程序中选择了一个图像区域,该应用程序使用 QGraphicsView 显示图像,我想用名称注释这个区域。
所以我想在这个矩形选择下面有一个 Line 编辑和两个按钮(Cross 和 Tick)。我怎么画这些?
示例代码会很酷!
c++ - QGraphicsView 框架和性能中的大量指针转换
由于 QGraphicsScene 和 QGraphicsItem 的大多数便利功能(例如 items()、collidingItems()、childItems() 等)返回一个 QList,你不得不做很多 qgraphicsitem_cast 或 static_cast 和 QGraphicsItem::Type() 检查当场景中有很多不同类型的物品时,请掌握实际物品。我认为做很多子类转换不是一种理想的编码风格,但我想在这种情况下没有其他可行的方法,或者有吗?
上面的 qgraphicsitem_cast 可以用 static_cast 代替,因为正确的类型已经被验证。当一直在做很多这些(非常动态的场景)时,大量的演员会影响性能超出正常的 if-else 评估吗?
c++ - 坐标混乱
我将 QGraphicsItem 子类化并重新实现了绘画。
在油漆中,我写了这样的东西来标记项目:
一段时间后,我认为用单独的项目处理标签可能很有用。所以我写了这样的东西。
但是两个“TEST”绘图不会出现在屏幕上的同一位置。我猜差异可能与项目坐标 - 场景坐标有关。我在 QGraphicsItem 界面中尝试了所有 mapFrom... 和 mapTo... 组合,但没有任何进展。我希望图纸出现在屏幕上的同一位置。
我想念什么?
python - 用 pyqt 扩展 QGraphicsItem
如何创建一个扩展 QGraphicsItem 的类来定义一种新的项目?
我正在尝试这样做
但我得到这个错误
我究竟做错了什么?我不能在 Node 的init方法中调用 QGraphicsItem 构造函数,因为 QGraphicsItem 它是一个抽象类
c++ - 根据比例计算QGraphicsTextItem字体大小
我QGraphicsTextItem
在QGraphicsScene
. 用户可以QGraphicsTextItem
通过拖动角来缩放对象。(我正在使用自定义“转换编辑器”来执行此操作。)用户还可以QGraphicsTextItem
通过从属性面板更改字体大小来更改大小。我想做的是统一这些,这样当用户通过用鼠标拖动角来缩放对象时,它实际上是在计算“需要什么大小的字体才能使生成的对象适合目标大小并保持比例因子为 1.0?”
我现在正在做的是让对象正常使用缩放QGraphicsItem::mouseMoveEvent
,然后在鼠标缩放完成后触发一个FinalizeMapScale
方法。QGraphicsItem::mouseReleaseEvent
然后,此方法应将字体更改为适当的大小并将比例设置回 1.0。
我有一个似乎有效的解决方案,但我对此并不着迷。我对 Qt 和 C++ 都比较陌生,所以如果有任何意见或更正,我将不胜感激。
- 有没有更好的方法来构建整个事情?
- 是否有已经这样做的 Qt 方法?
- 我的方法是否在正确的轨道上,但有一些 Qt 或 C++ 错误?
在提交您自己的首选解决方案时,请随时评论我的回答。谢谢!
[编辑]根据评论的要求,这里是缩放代码的基础知识。实际上,我们对此采取了不同的方向,因此不再使用此代码(以及下面的代码)。此代码在方法中,如果在右下角的“热点”中单击鼠标,则mouseMoveEvent
先前已将“scaling_”标志设置为true 。mousePressEvent
请注意,此代码位于装饰器 QGraphicsItem 中,该装饰器包含指向它正在缩放的目标的指针。这种抽象对于我们的项目是必要的,但对于大多数用途来说可能是多余的。
python - 限制qgraphicsitem的可移动区域
有没有办法限制设置时QGraphicsItem
可以QRect
移动的区域setFlag(ItemIsMovable)
?
我是 pyqt 的新手,并试图找到一种用鼠标移动项目的方法,并将其限制为仅垂直/水平。
python - QGraphicsView not displaying QGraphicsItems
Using PyQt4.
My goal is to load in "parts" of a .png, assign them to QGraphicsItems, add them to the scene, and have the QGraphicsView display them. (Right now I don't care about their coordinates, all I care about is getting the darn thing to work).
Currently nothing is displayed. At first I thought it was a problem with items being added and QGraphicsView not updating, but after reading up a bit more on viewports, that didn't really make sense. So I tested adding the QGraphicsView items before even setting the view (so I know it wouldn't be an update problem) and it still displayed nothing. The path is definitely correct. Here is some code that shows what is going on...
Ignore spacing issues, layout got messed up when pasting
--
I tried some stuff with connecting the TileBar's 'changed()' signal with various 'view' functions, but none of them worked. I've had a bit of trouble finding good examples of ways to use the Graphics View Framework, (most are very very small scale) so let me know if I'm doing it completely wrong.
Any help is appreciated. Thanks.
qt - 如何在 QGraphicsView 上锚定 QGraphicsWidget/Item(使它们成为静态)
我想做一个类似hud的东西。我有QGraphicsScene
一个巨大QPixmap
的,我添加到一个小得多QGraphicsView
。现在我需要添加一些控制元素,QLabel
例如QPushButton
和QGraphicsEllipseItem
。我认为这不是问题。我发现这个有用的页面Graphics View Classes。但是我如何将这个控制元素锚定到视图上,或者更好地说我如何不锚定它们?当我拖动 时QPixmap
,我不希望 hudQPixmap
与QGraphicsView
. 我需要做什么,才能解决这个问题。希望可以有人帮帮我。
qt - 在 Qt 中以图形方式表示树节点的最佳方法
我正在尝试在 Qt 中可视化一棵树。
到目前为止,我所有的节点都由简单的圆圈组成,并且基于 QGraphicsItem 类。但是我需要在每个节点上显示一些文本,如何将 QLabel “附加”到我的节点?
提前致谢。