抓住鼠标移动

时间:2009-05-21 11:24:30

标签: ruby qt keyboard mouse

我用qt在ruby上为我写了一点点用法。如何访问全局鼠标移动和键盘输入事件?

3 个答案:

答案 0 :(得分:3)

如果在没有单击按钮时需要跟踪鼠标移动,则需要在要跟踪鼠标的窗口小部件上打开鼠标跟踪。所有QWidget上都提供的功能QWidget::setMouseTracking()可以让您这样做。

要捕获鼠标移动,您需要捕获QMouseMoveEvent个。有两种方法可以做到这一点:

  • 如果您要定义自己的小部件,请重新实现QWidget::mouseMoveEvent()
  • 如果您使用的是股票窗口小部件,则可以创建事件过滤器类并在要跟踪鼠标移动的窗口小部件上安装事件过滤器。见QObject::installEventFilter()

有关官方Qt文档,请单击感兴趣的函数上的链接。

答案 1 :(得分:2)

使用QWidget::grabMouse()并注意它是一个非常危险的功能,请小心使用。

答案 2 :(得分:0)

对于鼠标位置,您是否尝试QCursor::pos()