qgraphicsitem相关内容

禁止可移动的QGraphicsItem与其他项目冲突

最终编辑 我解决了这个问题,并在下面发布了一个解决方案作为答案。如果您无意中从Google找到了一种合适的方式来通过ItemIsMovable标志移动QGraphicsItems/QGraphicsObject,同时避免与其他节点发生冲突,我在答案的末尾提供了一个有效的itemChange方法。 我最初的项目涉及将节点捕捉到任意网格,但这很容易删除,并且根本不是此解决方案工作所必需的。 ..
发布时间:2022-05-26 22:54:45 C/C++开发

在QGraphicsView的ScrollHandDrag模式下,如何停止QGraphicsItems在场景中的移动?

我在场景中有多个QGraphicsItem,分布在场景的不同部分。在应用中,有不同的模式,其中一种模式是用户可以滚动场景(手掌拖动模式)。 若要在场景I上滚动,请将QGraphicsView的dragMode设置为ScrollHandDrag。 但问题是,当用户尝试通过在任何QGraphicsItem上拖动(MousePress和MouseMove)来滚动场景时,它会移动QGraphicsI ..
发布时间:2022-03-30 14:32:59 其他开发

Qt tablView 模型包含指向自定义类的指针

我创建了从 QGraphicsItem 继承的自定义类 (CustomObject).我使用这些对象在场景上绘制(矩形、多边形和其他东西),并将指向它们的指针存储在 QList 中.现在我需要在 tableView 中显示我所有的 CustomOBjects,但有两个条件: 当我在 tableview 中选择对象并与之交互时 - 我必须能够与它表示的“真实"CustomObject 交互(例 ..
发布时间:2021-09-04 19:07:25 C/C++开发

如果在不保持纵横比的情况下调整大小,则旋转 QGraphicsPixmapItem 会导致剪切

我正在尝试旋转 QGraphicsPixmapItem 子项.对于其他 QGraphicsItem,旋转和缩放工作正常.但是对于 QGraphicsPixmapItem,如果尺寸不保持纵横比,我会得到剪切而不是旋转. 示例代码: #include #include #include #include #include int main(int argc, char *argv[]){QGr ..
发布时间:2021-07-10 19:39:24 其他开发

如何围绕选择中心旋转选定的 QGraphicsItems?

我想实现所选项目的轮换. 我注意到有 2 个函数 - rotate() 执行立即操作但不保存项目的旋转 - 和 setRotation() 存储旋转()(尽管它需要重新绘制导致事件). 如果我选择单个项目并旋转它,我可以设置 selectedItem->setRotation(selectedItem->rotation() + deg); 这允许项目存储其旋转,当我需要将其复制到 ..
发布时间:2021-07-10 19:38:03 其他开发

调整和旋转 QGraphicsItem 会导致形状奇怪

我无法理解如何将缩放和旋转应用于 QGraphicsItem. 我需要能够应用旋转和缩放(不一定保持纵横比)并且我得到了完全出乎意料的结果. 旋转必须围绕项目中心.我这样做似乎没有问题 - 但是如果我尝试调试边界矩形,我会得到看似错误的值. 如果我不保持纵横比,而不是旋转,我会得到一个非常奇怪的歪斜,我一直在努力寻找原因并纠正它.我希望任何人都可以找到解决方案. 对于许多项 ..
发布时间:2021-07-09 18:31:54 其他开发

隐藏超出边界的 QGraphicsItem 区域

我在 QGraphicsScene 中有一个 QGraphicsPixmap 项目.该项目的标志设置为 ItemIsMovable 和 ItemIsSelectable.我如何确保当项目移出某个边界时 - 它可以是 QGraphicsScene 或只是固定坐标处的固定帧大小 - 部分会隐藏? 例如. 篮球的左侧部分变得隐藏起来. 解决方案 必须使用setClipPath(). ..
发布时间:2021-06-30 18:41:01 C/C++开发

在 QGraphicsScene 上绘制 QGraphicsItem 的正确方法

我在 qt 的网站和此处查看了一些资源,但无法解决我的问题. 我正在尝试在鼠标单击时在 QGraphicsScene 上绘制一个矩形,我希望新矩形正好在用户单击的位置居中,但这在场景足够大之前不起作用. 这是我尝试过的 在MainWindow.cpp MainWindow::MainWindow(QWidget *parent) :QMainWindow(父),用户界面(新用户 ..
发布时间:2021-06-30 18:40:31 C/C++开发

设置 ItemIsMovable 标志时,QGraphicsView 中的子项不可移动

要在 QGraphicsView 中调整项目大小,我m 将表示顶点的子项放到要移动的项上(使用在构造函数中建立的父子关系).这些是下图中的四个蓝色圆圈: 但是子顶点没有接收鼠标事件.只有父项(红色方块)正在获取鼠标事件. 这是Item的定义: Item::Item(QGraphicsItem * parent) :QGraphicsItem(父){setFlag(ItemIsMova ..
发布时间:2021-06-30 18:38:27 C/C++开发

Pyside2 如何移动盒子?

如果我按下左键移动鼠标,我想移动我的 SimpleItem 对象.如果我按下对象,我已成功获取鼠标光标的位置.但我不知道如何将项目移动到该位置.你能帮我吗? 导入系统从 PySide2 导入 QtGui、QtWidgets、QtCore类 SimpleItem(QtWidgets.QGraphicsItem):def __init__(self):QtWidgets.QGraphicsItem. ..
发布时间:2021-06-24 20:31:28 Python

QGraphicsItem 绘制延迟

这可能是什么原因?当我放大 QGraphicsView 并移动 QGraphicsItem 时,我得到了这个奇怪的结果.如果我再次缩放或平移视图或者我专注于其他小部件,它会更新.我使用 PySide.而painter函数就是这个 defpaint(self,painter,option,widget):如果 self.isSelected():画笔 = self.highlight_brushp ..
发布时间:2021-06-24 20:29:36 Python

在 PyQt4 中围绕中心点移动 QGraphicsItem

我使用的是 Python 2.7 和 PyQt4.我试图有一个 QGraphicsItem 的半圆对象.我希望能够通过单击和拖动使用鼠标移动它.我可以通过设置标志 ItemIsMovable 来创建对象并用鼠标移动它.现在半圆自由移动,但我希望它围绕固定的中心点移动.很难描述,但它应该是类似于表盘的东西.我怎样才能做到这一点? 解决方案 您可以使用 QGraphicsItem::mouse ..
发布时间:2021-06-24 19:47:56 Python

如何在 QGraphicsView 上锚定 QGraphicsWidget/Item(使它们静态)

我想做一个类似 hud 的东西.我有一个带有巨大 QPixmap 的 QGraphicsScene,我将它添加到一个小得多的 QGraphicsView.现在我需要添加一些控制元素,例如 QLabel、QPushButton 和 QGraphicsEllipseItem.那,我认为,不是问题.我发现这个有用的页面 Graphics View Classes.但是我如何将这个控制元素锚定到 View ..
发布时间:2021-06-24 19:36:47 其他开发