【问题标题】:how to convert mouse move event into mouse scroll/drag event如何将鼠标移动事件转换为鼠标滚动/拖动事件
【发布时间】:2011-08-30 21:40:53
【问题描述】:

我的应用程序要求我使用多个鼠标,当用户移动特定鼠标时,操作系统应该返回鼠标拖动/滚动事件。我想使用 Qt 4.6 来实现它。

【问题讨论】:

    标签: qt events mouse


    【解决方案1】:

    你可以做的是

    QWidget::setMouseTracking ( true );

    应该调用 QWidget::mouseMoveEvent ( QMouseEvent * event ) 鼠标移动时

    那么你就可以随心所欲地处理事件了。

    如果您正在寻找一般的拖动事件,那么 Qt 已经处理了鼠标事件 QWidget::dragEnterEvent (QDragEnterEvent * 事件) http://doc.qt.nokia.com/latest/qwidget.html#dragEnterEvent

    【讨论】:

    • 我知道qt有自己的mousemove事件。我的应用程序已经包含 mousemove 和 mousedrag 处理程序。我的问题是我有一个轨迹球鼠标,它的行为与普通系统鼠标中的拖动/滚动一样。我想要的是围绕轨迹球鼠标事件的包装,以便它可以用作鼠标拖动。我正在使用 Windows XP。
    • @Kashish:当你用轨迹球鼠标做某事时,Qt 会调用 mouseMoveEvent 吗?
    • 您好 Blueskin,感谢您的回复和关注。轨迹球鼠标是连接到 COM1 端口的串行设备,没有滚轮(用于拖动),并且仅在 dX 和 dY 中给我输入。我想发出一个 QWheel 事件,它将我的 dx 转换为 event->delta()。有没有办法将 dX(从静态位置一次的球运动量)转换为 QWheelEvent。
    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多