问题标签 [qgraphicsproxywidget]
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.
python - 当鼠标悬停在 QGraphicsProxyWidget 上时,QGraphicsView 的行为不同
我有一个使用 QGraphicsView 的 pyside2 GUI。
我使用 setDragMode(QGraphicsView.ScrollHandDrag) 使视图可拖动,但我在 mouseReleaseEvent 上使用 viewport().setCursor(Qt.ArrowCursor) 覆盖光标,以避免经常使用张开手而不是普通箭头光标。此处对此进行了解释:Changing cursor in a QGraphicsView (in c++)
在 GUI 中还有一个带有 QLabel 的 QGraphicsProxyWidget。当鼠标放在 ProxyWidget 上时, viewport().setCursor(Qt.ArrowCursor) 不起作用(调用了 moseReleaseEvent,所以我知道调用了 setCursor),当鼠标离开 ProxyWidget 时,张开的手光标显示而不是箭头光标。
当鼠标放在 QGraphicsView 中的所有其他位置时,一切都按预期工作。
有谁知道为什么当鼠标放在 proxyWidget 上时 setCursor 的行为会有所不同?
在 QGraphicsView 中:
InfoBox(如您所见,我尝试设置一些标志但没有成功):
qt - 添加到 QGraphicsScene 时如何更新 OpenGL 绘图(QOpenGLWidget)?
我的实现基于这个示例。https://doc.qt.io/qt-5/qtopengl-2dpainting-example.html
该示例所做的是渲染/动画 2 个图像。一个使用原生 qt 功能渲染,另一个使用 OpenGL 渲染。这里的所有都是它的。正在绘制的图像完全相同。
该示例工作正常。我可以看到两个图像都有动画。然后,当我尝试通过在 QGraphicsScene 中添加一个 Window 类(包含 QOpenGLWidget)来进行更改时;QOpenGLWidget 停止自我更新。
原始 main.cpp
更改了 main.cpp
这是输出。
完整的源代码可在此处获得。 https://github.com/syaifulnizamyahya/QT2dpainting
c++ - 为什么 QGraphicsProxyWidget 在放入 QGraphicsView 后无法正确调整大小?
我有一个QListWidget
和一个QGraphicsView
两个子类来覆盖他们的一些成员。我准备了一个最小的可验证示例来显示我遇到的问题。
从QListWidget
我可以拖放由 a 表示的特定字段QTableWidget
并将它们放入 aQGraphicsView
中,为了做到这一点,我正在使用QGraphicsProxyWidget
如下所示的方法。
值得一提的是,QGraphicsRectItem
它用于在绿色周围移动QTableWidget
以及调整其尺寸。
问题:从那里拖动QListWidget
不是问题。但是放入QGraphicsView
是一个问题,因为如您所见,QGraphicsRectItem
它就在QTableWidget
.
为了完整性,可以在此处和下方找到最小可验证示例:
但是,只要我用 的尺寸触摸调整本身的QSizeGrip
右下角:QGraphicsProxyWidget
QGraphicsRectItem
QTableWidgetItem
在最小可验证示例下方:
主文件
主窗口.h
主窗口.cpp
选项列表.h
选项列表.cpp
customtablewidget.h
customtablewidget.cpp
最后问题出在哪里:
场景.h
场景.cpp
我对这个主题进行了广泛的研究,并遇到了另一个非常有用的帖子,因为它让我解决了内部的调整大小问题,QGraphicsView
但它并没有让我解决QGraphicsView
.
我提到的帖子继续对所需的小部件进行子类化并添加一个名为的附加信号sizeChanged();
,这就是我所做的。
我还在声明之前的 AND 之后移动了以下语句QSizeGrip
:
但这并没有引起任何变化,我仍然有这个错误。
感谢您指出解决此问题的正确方向。
qt - 如何使用箭头将 QTableWidget 单元格的 QRadioButton 与另一个 QTableWidget 单元格连接?
我有一个QListWidget
和一个QGraphicsView
两个子类来覆盖他们的一些成员。我准备了一个最小的可验证示例,显示了我在这里遇到的问题
从QListWidget
我可以拖放特定字段(由 QTableWidget 表示)并将它们放入 aQGraphicsView
中,为了做到这一点,我使用QGraphicsProxyWidget
如下所示的方法。
问题
现在,如何将a 的单元QRadioButton
格内的2QTableWidget
与另一个单元格的另一个单元格连接起来QTableWidget
?
值得一提的是,QGraphicsRectItem
它用于在绿色周围移动QTableWidget
以及调整其尺寸。
在我能够到达的结果下方:
低于我一直试图达到的预期结果:
下面是代码最重要的部分:
场景.h
场景.cpp
图表项.h
图表项.cpp
箭头.h
箭头.cpp
到目前为止我为解决问题所做的工作:
1)我看到这篇文章有助于理解如何做到这一点的最初想法,但它并没有真正提供一种方法,或者关于如何最好地进行的实施想法
2)我研究了官方文档,在问这个问题之前,我浏览了提供的整个图表场景示例,并了解了如何创建Arrow
对象。关于这方面的文档非常好,让我了解了图形行项目是如何形成的。但是,我无法(回到我的示例)如何“意识到”QRadioButton
我正在尝试将其中心用作箭头广告的起点,因此,我如何“意识到”QRadioButton
另一个单元格中的目的地它必须在那里连接吗?
下面是我的意思:
所以基本上QRadioButton
改变颜色(或风格)的起点和到达点也改变颜色。
3)我认为该Arrow
对象必须在子类中创建,QGraphicsScene
因为它已经处理了mouse events
.
4)尽管到目前为止我已经尝试过,但我找不到任何其他有用的帮助。虽然我仍在研究如何做到这一点。
如果有人遇到过同样的情况,请提供有关如何更好地解决此问题并找到解决此问题的方法的指导。
c++ - 如何更改已经存在的 QGraphicsProxyWidget 的背景颜色?
我已经用 QGraphicsProxyWidgets 形成了一个网格布局,它们是添加到场景中的 Qlabel 小部件。我想通过单击按钮来更新小部件的背景颜色。
如何访问 QLabel 以便更改背景颜色?我尝试使用调色板,但它导致程序崩溃。
c++ - 如何修复“无法使用'QGraphicsLayoutItem *'类型的右值初始化'QGraphicsProxyWidget *'类型的变量”?
我想解析QGraphicsGridLayout
,但得到这个错误。问题是我能够添加QGraphicsProxyWidget
为项目但无法检索它。我想知道如何QGraphicsLayoutItem*
在QGraphicsProxyWidget*
这行mainwindow.cpp
代码中将 a 转换为auto *currentWidget = static_cast<QGraphicsProxyWidget*>(layout->itemAt(row, col));
。使用它时static_cast
返回一个NULL
指针,请帮忙。
主窗口.h:
主窗口.cpp: