【发布时间】:2011-05-25 08:32:40
【问题描述】:
我有一个 GUI 应用程序,您可以在其中在 QGraphicsView/Scene 中拖动小部件。您还可以在不拖动小部件时进行平移和缩放。
我想要什么: 我想这样做,以便当您在屏幕边缘附近拖动一个项目时,它开始朝该方向平移并继续平移,即使鼠标没有移动,但鼠标仍需要位于顶部/left/right 或底部 10% 的屏幕。
我尝试过的: 在 dragMoveEvent 中,我检查鼠标是否在屏幕边缘。如果是这样,我会启动一个 15 毫秒超时的 Qtimer。在超时时,通过更新中心,将一个函数插入到正确的方向上平移场景。这种方法可行,但是当我将鼠标仍留在边缘时,平移会不稳定,如果鼠标在边缘内移动,则平移应该是平滑的。
底线: 为什么当鼠标不动时平移只是不稳定/滞后?如何修复它,以便像在边缘内移动鼠标一样平滑平移?
【问题讨论】:
标签: c++ qt user-interface qgraphicsview