问题标签 [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.
qt - 在 QGraphicsPixmapItem 的 mousePressEvent() 切换鼠标按钮
在QGraphicsPixmapItem的mousePressEvent()中切换鼠标左右键有什么简单/优雅的方法吗?我有自己的从 QGraphicsPixmapItem 派生的类,因此我可以实现自己的虚函数版本。但我想不出任何简单的方法来做到这一点。
困难的方法是:
- 创建我自己的从 QGraphicsSceneMouseEvent 派生的类,该类可以切换按钮并在 mousePressEvent 处使用,它将替换默认接收到的事件。
- 复制并粘贴原始 mousePressEvent() 中的大部分代码以通过按钮进行更改。
但是这些“解决方案”并没有对我“说话”,而且看起来并不优雅。也许其中之一是优雅的,但我没有足够的 XP 来查看它。有经验的人可以给我一些提示吗?
c++ - 是什么导致类型不完整?(QGraphicsItem:源或目标的类型不完整)
我有一个自定义的 QGraphicsItem,它(除其他外)使用 Qt 文档中描述的标准过程在单击时将光标更改为张开的手。这在过去两周左右工作得很好。昨天,我在课堂上改变了一些东西。最重要的是,我现在直接从 QGraphicsPixmapItem 而不是 QGraphicsItem 子类化。
在某些时候,我开始收到以下错误(部分是我自己的翻译):
C664:无法将参数 1 从“Qt::CursorShape”转换为“const QCursor &”。源或目标的类型不完整。
我现在试图弄清楚为什么我的项目类型不完整。不幸的是,当这个问题开始发生时,我无法追溯。改变的基类是我唯一的猜测,但我真的想不出一种方法,这怎么可能是原因。谷歌搜索错误后,我找到了一些示例,其中类成员的定义有些不明确,但我在声明中找不到错误。所以,这是标题,以防我错过了什么:
如果这个文件是正确的,那么是否有任何导致我可以检查的未定义类型的常见问题?也许我什至在错误的地方搜索?
谢谢你的时间,路易丝
resize - 通过轮廓选择自定义 QGraphicsItem
通过用鼠标抓住其轮廓并拖动来调整 QGaphicsItem 大小的最佳方法是什么。该程序在场景中有许多 Qgraphicsitem,它们可以重叠或在另一个内部。这些项目是透明的绘图对象,如矩形、线条和圆形。
我希望只能在项目边框/轮廓上进行选择。这可能吗?
谢谢
c++ - QGraphicsItem 中出现奇怪的“不完整类型”错误
我从这个问题开始:是什么导致类型不完整?(QGraphicsItem:源或目标的类型不完整)
如那里所述,我收到以下错误(部分是我自己的翻译):
C664:无法将参数 1 从“Qt::CursorShape”转换为“const QCursor &”。源或目标的类型不完整。
在试图找出该项目可能不完整的原因时,我将其剥离为仍然显示错误的最小测试用例。奇怪的是:它绝对是最小的......
标题:
执行:
它不编译,给出如上的错误。但是,在 main 方法中设置光标item->setCursor(Qt::OpenHandCursor);
就可以了。该错误似乎在其他 QGraphicsItems 中持续存在(至少我测试了 QGraphicsRectItem)。
我完全糊涂了,不知道接下来要检查什么。上面的代码是否适用于其他机器/设置?我还可以测试什么来获取更多信息?
谢谢,路易丝
c++ - 多重继承:QGraphicsPixmapItem 和 QGraphicsTextItem
我需要一个结合了QGraphicsPixmapItem
和QGraphicsTextItem
(图像+文本)特征的对象。
多重继承是最好的方法还是有任何禁忌症?如果有,你有什么建议?
c++ - Qt 应用程序中的奇怪错误
在我的应用程序中,我重新实现QGraphicsView
了检查 a mouseReleaseEvent()
,然后告诉鼠标所在位置的项目来处理事件。
我的QGraphicsItem
视图由另外两个组成QGraphicsItems
,我检查两个中的哪一个被单击(或者更确切地说是释放按钮),并处理相应的事件。
在我的 Widget 的构造函数中,我将其中一个项目设置为默认选中,使用的方法与项目检测到发布时使用的方法相同。
调试的时候,发现对于LabelItem
, select 从构造函数中调用没有问题(并且在我第一次启动应用程序时结果很清楚)。但是,当我单击这些项目时,应用程序将终止。我看到我正在进入选择功能,但没有离开它。所以问题就在这里。
这很奇怪,因为 select 函数只是一个单行设置器。
这是mouseReleaseEvent
;
当我在函数中注释掉该行时,我没有错误。我还没有为另一个QGraphicsItem
CheckBoxItem 进行调试,但应用程序也终止了它的事件。我认为这个问题可能是相关的,所以我现在专注于select
。
我完全不知道是什么原因导致了这种情况以及为什么会发生这种情况。根据我过去的经验,我很确定这是我愚蠢地没有想到的简单事情,但我不知道是什么。
帮助真的很感激。
qt - 无法投射 qgraphicsitem
好的,我认为错误可能很明显,但此时我找不到它。
我有:
以及类似的类 GraphSceneCustom(来自 QGraphicsScene)和 GraphPixmapItemCustom(来自 QGraphicsPixmapItem)。在上面的 wheelEvent() 中,我有这样一行:
我删除了替换的左侧以提高可读性和减少复杂性。在这条线上我得到
没有匹配函数调用 'qgraphicsitem_cast(QGraphicsItem*&)'
我究竟做错了什么?我想这个错误很明显(我最常见的错误是什么——我很少犯难的。但是当我这样做时,它们真的很难)。
是的,我添加了 QGraphicsItem 类的标题。
qt - QGraphicsScene : 获取光标下的 QGraphicsItemGroup
我无法在光标下方获取 QGraphicsItemGroup 的指针。QGraphicsScene::ItemAt
返回组的对象之一,但不是 ItemGroup 它自己。
任何线索如何做到这一点?
谢谢
qt - 选择 QGraphicsItem 时调用什么方法
可能是一个棘手的问题,但我找不到答案。
我需要知道 QGraphicsItem 何时被选中。必须有一个被调用的方法。
我知道QGraphicsItem::itemChange()
,但它被称为太频繁了。
有没有更好的方法?
谢谢
编辑:有了这个
每次选择更改我都会接到两个电话。
qt - 如何实现平滑的 QGraphicsView::centerOn(QGraphicsItem)?
我有一个QGraphicsItem
名为 的后代lnk
,我使用此代码将图形视图 rect 移动到场景中的位置:
现在,我希望视图平滑滚动到项目的位置(例如谷歌地图)。
用谷歌和stackoverflow查找,我找到了一些解决方案,但都是基于旧的API,对我来说不是很清楚。
比如这个:Make QGraphicsView do smooth centerOn是基于老API,源代码不完整。这个也已经过时了:http ://www.qtcentre.org/threads/30970-QGraphicsView-centerOn()-with-smooth-scrolling
请帮助我了解如何使用新 API 获得此功能(我想我必须使用 QPropertyAnimation 工具)?