gpt4 book ai didi

Qt:修改两个非兄弟图形项之间的 z 顺序

转载 作者:行者123 更新时间:2023-12-01 12:53:11 27 4
gpt4 key购买 nike

我有一个 QGraphicsScene,我在其中插入各种 QGraphicsItem 对象,例如矩形或多边形。这个想法是用 RectItem 表示一个电子图,每个组件都有一个三角形 PolygonItem 这个组件的每个引脚,还有一个 PathItem 表示引脚之间的链接。

我很难想出一种正确排列我的项目的方法,因此链接总是隐藏在它们的起始 pin 和结束 pin 旁边。很容易将链接隐藏在其起始图钉后面,因为起始图钉始终是链接的父项,因此我可以在创建链接时设置标志 QGraphicsItem::ItemStacksBehindParent。但是对于尾针,我卡住了。

我试图将我的 pin 的 Z 值设置为其附加链接的更高值,或者调用 Qt 函数 StackBefore() ,但没有结果。文档告诉我 z 顺序只涉及同级项,这意味着共享相同父项或都是顶级项的项。但是我的所有组件都是独立的,那么有没有办法更改两个非兄弟项之间的堆栈顺序?

非常感谢您的帮助。

最佳答案

好吧,根据 Riateche 的评论(谢谢),我找到了解决问题的方法。

为了修改两个非兄弟项之间的堆叠顺序,并且因为它们没有共同的父项,我不得不更改它们最顶层父项的 z 值,即那些是顶级项的项。我没有试图将我的链接隐藏在它的结束引脚后面,而是制作了整个组件,即包含发出我的链接的引脚的组件,隐藏在另一个组件后面,该组件是结束引脚的父组件。因为这两个组件是顶级项目,所以 setZValue 方法有效。

好吧,我同意它并没有真正回答最初的问题,因为最终我不得不重新考虑这个问题以便使用两个同级/顶级项目,但这感觉像是做事的自然方式, 所以...我不认为真的存在改变两个非兄弟项之间的堆栈顺序的方法。

关于Qt:修改两个非兄弟图形项之间的 z 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195058/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com