问题标签 [qgraphicswidget]

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 投票
1 回答
176 浏览

c++ - QGraphicsWidget 作为 QObject 的子级

这是否可能具有 QObjects 和(例如) QGraphicsWidgets 的树状结构?我的意思是,我不能写像这样的初始化列表:

然后,就像

我应该做 .setParent 还是什么?

更新:查看实际分配:

0 投票
1 回答
1332 浏览

qt - 使用 QGraphicsVideoItem 将 QGraphicsScene 渲染到 QImage

这部分解决了

我想将带有 QGraphicsVideoItem 的 QGraphicsScene 渲染到 QImage。当 QGraphicsScene 仅带有 QGraphicsTextItem 时,一切正常。但是,如果我用 QGraphicsVideoItem 替换 QGraphicsTextItem,它将无法获得正确的图像输出。如何解决这个问题?谢谢...以下代码是为了测试这个问题。

在您的 .pro 文件中添加以下内容可能会有所帮助:)

新问题

在我的项目中,我想在 QGLView 窗口(Qt3D)中渲染视频。但是,QGraphicsView 和 QGLView 似乎不能同时渲染。如果我不使用 QGLView 的 show() 方法,我可以获得视频帧。如果我使用 QGLView 的 show() 方法,我无法获得正确的帧...

那么我怎么能实现上面的想法呢?

0 投票
2 回答
1626 浏览

c++ - 如何获取 QGraphicsScene 的小部件(QGraphicsProxyWidget)?

我正在使用 a并通过隐式创建的对象向其QGraphicsScene添加常规小部件(QLineEdit,QComboBox等) :QGraphicsProxyWidget

我目前正在寻找一种稍后再次从场景中检索这些小部件进行处理的方法,但找不到。

我已经尝试了以下方法:

  1. 由于我无法将图形场景作为父级传递给小部件构造函数,因此通过检索小部件m_pGraphicsScene->findChildren(QLineEdit*)不起作用,因为没有直接关系。
  2. 图形场景确实有一个QGraphicsSceneBspTreeIndex孩子,但这不是官方 Qt API 的一部分,因此依赖它不可能是要走的路。

底线:如何QGraphicsProxyWidget从 Qt 图形场景中获取所有对象?这可以在 Qt 标准中完成,还是我必须继承 QGraphicsScene 并尝试自己管理小部件?

0 投票
1 回答
238 浏览

python - PySide QtGui.QGraphicsWidget 子父变换

我有一个关于使用 QtGui.QGraphicsWidget 的问题。在给定的示例中,我将尝试描述我的问题。QtGui.QtGraphicsScene 内部有两个QGraphicsWidget 实例,一个是父级(app_widget.main_widget - 运行时为蓝色),另一个是其子小部件(app_widget.subwidget - 运行时为红色)。如果您运行该程序,您可以使用键盘上的加号键在状态之间循环转换小部件。

当缩放父窗口小部件时(改变“缩放”属性 - QtGui.QGraphicsWidget 属性继承自 QtGui.QGraphicsObject),子窗口小部件也会被缩放。但是,当我更改父小部件的几何形状(更改“几何”属性 - QtGui.QGraphicsWidget 属性)时,子小部件几何形状保持不变。

我正在运行 Python 2.7.6、PySide 版本 1.2.1 和 QtCore 版本 4.8.6。

为什么子部件不总是跟随父母的转换?有没有办法只缩放父小部件的一个轴并让所有子小部件按比例缩放?

0 投票
1 回答
480 浏览

qt - 将 qgraphicsitem 类型转换为 qgraphicswidget

我的 qgraphicsscene 有 qgraphicswidget,它不断添加 qgraphicsLayoutItem。在 graphicsView 我需要在场景中协调 qgraphicswidget 几何。我试过 QList items = scene()->items(); 并用类型检查它

foreach (QGraphicsItem *item, items) { if(item->type() == ItemType) { }

但是如何将项目转换为 qgraphicswidget 并将其几何图形更改为场景坐标。正常 item.boundingRect 不断返回 0,0, 10x10

0 投票
1 回答
574 浏览

c++ - QGraphicsWidget 和 QGraphicsLayout 间距和大小

我在 a中使用QGraphicsWidgetand来创建一个像“Widget”这样的节点。每个节点都有一个 Header、multiple和一个 Footer。QGraphics[Linear]LayoutQGraphicsSceneIOGraphicsWidgets

代码结构:

代码结构

想要的布局:

节点布局

当前代码的结果:

当前结果

如您所见NodeGraphicsWidget(HeaderWidget 后面的红色矩形)未调整大小以包含添加到其中的所有项目。之间的间距LayoutItems也很大,m_centerWidgetLayout->setSpacing(0)没有任何变化。现在我正在考虑自己编写所有布局,但我希望有更好的方法可以使用标准 qt。

NodeGraphicsWidget:addIOWidget(AbstractIOGraphicsWidget *ioWidget)只需将给定添加AbstractIOGraphicsWidgetm_centerWidgetLayout.

的构造函数NodeGraphicsWidget

要查看完整的源代码,请访问:https ://github.com/nidomiro/QtNodes/tree/f5426c154a4938481f00031f031507499cc0e183/src

0 投票
1 回答
127 浏览

pyqt - QGraphicsview + 场景 + QGroupBox 移动问题

在过去的几天里,我试图解决小部件移动的问题。在某些时候,我尝试用鼠标信号重写 QComboBox 类,但没有奏效。作为一种解决方法,我决定将我的小部件作为 QGraphicsWidget 的父母,但是一旦我尝试添加另一个项目,它就不再显示,我不知道该怎么做。这是完整的测试脚本:

当您单击“创建节点视图”>“显示节点编辑器”>“测试”按钮时,应该会出现一个新的 GroupBox,但这不起作用。不知道为什么。

0 投票
1 回答
349 浏览

qt - 如何在 QGraphicsView 中执行 QGraphicsItem(s) 的交换?

我在这个项目中的想法是对项目执行交换动画。然而问题是,当我第一次对项目执行交换时,它们保持它们的位置不变,但是当另一个涉及已交换项目的动画开始时,这些项目会回落到它们的初始位置。请告诉我我做错了什么。动画如下:

在此处输入图像描述

UPD:不要为此目的使用动画

UPD*:忘记以前的 UPD

0 投票
2 回答
333 浏览

qt - 响应式 QGraphicsWidget

我的问题是一个简单但令人讨厌的用户体验破坏了一个。我正在尝试QGraphicsItemQGraphicsScene. 我还需要 a QGraphicsLayout,但据我了解,不能简单地将布局放在场景上,因为必须在 a 上设置布局QGraphicsWidget,然后将小部件添加到场景中。

现在,当我需要加载大量项目并准备将它们显示时,场景只是空置在那里,因为我无法使上述QGraphicsWidget. 只有最后才能将其添加到场景中,否则将不会显示任何以后的更改。

目标:向场景添加某种布局管理 -> {准备一个项目 -> 将项目添加到布局 -> 显示 -> 准备一个项目 ->} 重复...

但是我有:{准备一个项目->准备另一个项目->}重复...->将所有内容添加到布局->在场景中设置布局管理->显示

那么问题来了:有什么方法可以为场景创建响应式布局/容器,在添加新子对象后重新绘制自身?

0 投票
1 回答
127 浏览

qt - Qt QGraphicsProxyWidget隐藏其他QGraphicsProxyWidgets

我正在使用 QGraphicsScene 和 -View 开发 Slotmachine,并且该项目即将结束。但现在我想在获胜线中添加一个小矩形,以显示该线中赢得的学分数量。rect 是 QGraphicsProxyWidget 中的 QLabel。我不知道这是否是解决此问题的最佳方法,但目前我无法找到更好的解决方案。我将 proxyWidget 设置为在标签的构造函数中不可见,但是当我将此 proxyWidget 设置为可见时,场景中的其他 proxyWidget 会消失。我只是不明白为什么。它并没有隐藏每个 proxyWidgets。

问题。

正如您在图片中看到的那样,获胜线的第一个正方形中间有一个红色矩形。这导致了问题。它隐藏了较低的白色边框,这是一个 QGraphicsPixmapItem 和底部通常三个 QGraphicsProxyWidgets 中的第一个,股权(这是不可见的),最后的收益(letzter Gewinn),信用(Guthaben)。我不知道为什么它不隐藏底部的其他小部件,因为它们都是平等的。如您所见,它没有隐藏完整的下边框。我只是不知道为什么会发生这种情况,以及为什么它只发生在下边框和底部的左侧小部件上,而不是任何其他元素。我只是不知道如何解决这样的问题。

读起来有点长,但我不知道如何真正描述问题或如何在代码中向您展示。我希望有人能帮助我。