【发布时间】:2014-04-07 12:19:27
【问题描述】:
我在一个场景上有一个 QGraphicsRectItem。我打算将此窗口拖放到场景上。当矩形项目到达左边界端时,我必须显示它从右端出现。目前我正在使用两个对象并通过计算涉及大量计算的场景边界来隐藏和显示它们。 有没有更好的方法可以仅使用单个对象来实现相同的效果?
谢谢
【问题讨论】:
标签: qt qgraphicsview qgraphicsitem
我在一个场景上有一个 QGraphicsRectItem。我打算将此窗口拖放到场景上。当矩形项目到达左边界端时,我必须显示它从右端出现。目前我正在使用两个对象并通过计算涉及大量计算的场景边界来隐藏和显示它们。 有没有更好的方法可以仅使用单个对象来实现相同的效果?
谢谢
【问题讨论】:
标签: qt qgraphicsview qgraphicsitem
您可以使用跨越整个场景的单个项目,并在其绘制方法中绘制矩形(或其中的 2 个部分)。
但是你会失去 BSP 树的优化,即使一些不相关的区域重绘,你的项目也会重绘。如果这只是一项,我想影响不大。
您需要使用 mousemove 事件等实现自己的拖动,虽然这不是很多代码,但您只需要正确完成即可。
【讨论】: