【问题标题】:QTimer with QDragEvent problemsQTimer 与 QDragEvent 问题
【发布时间】:2011-05-25 08:32:40
【问题描述】:

我有一个 GUI 应用程序,您可以在其中在 QGraphicsView/Scene 中拖动小部件。您还可以在不拖动小部件时进行平移和缩放。

我想要什么: 我想这样做,以便当您在屏幕边缘附近拖动一个项目时,它开始朝该方向平移并继续平移,即使鼠标没有移动,但鼠标仍需要位于顶部/left/right 或底部 10% 的屏幕。

我尝试过的: 在 dragMoveEvent 中,我检查鼠标是否在屏幕边缘。如果是这样,我会启动一个 15 毫秒超时的 Qtimer。在超时时,通过更新中心,将一个函数插入到正确的方向上平移场景。这种方法可行,但是当我将鼠标仍留在边缘时,平移会不稳定,如果鼠标在边缘内移动,则平移应该是平滑的。

底线: 为什么当鼠标不动时平移只是不稳定/滞后?如何修复它,以便像在边缘内移动鼠标一样平滑平移?

【问题讨论】:

    标签: c++ qt user-interface qgraphicsview


    【解决方案1】:

    当您增加/减少超时时会发生什么?

    【讨论】:

    • 延迟时间越短越明显,超时时间越长则越不明显
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 2022-01-04
    • 2018-08-03
    • 1970-01-01
    • 2013-10-15
    相关资源
    最近更新 更多