首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在QWindow上启用鼠标跟踪

如何在QWindow上启用鼠标跟踪
EN

Stack Overflow用户
提问于 2017-02-10 04:04:19
回答 2查看 1K关注 0票数 1

我在OpenGL中使用的是QWindow (不是QMainWindow)。我需要使用QWindow来正确地控制OGL上下文。

我正在尝试遵循Scribble示例来实现类似于平移的东西,但是我找不到一种触发mouseMoveEvent()的典型方法。

如何获得类似于setMouseTracking()mouseMoveEvent()不断被触发的“工具提示”效果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-10 05:27:36

它对我来说很好。我使用继承QWindow而不是QMainWindow的MainWindow创建了一个测试程序,并处理鼠标移动事件以打印光标位置:

代码语言:javascript
复制
void MainWindow::mouseMoveEvent(QMouseEvent *e)
{
    qDebug("%d, %d", e->pos().x(), e->pos().y());
}

它起作用了,当我移动鼠标时,即使没有按下任何鼠标按键,我也会得到事件。

票数 2
EN

Stack Overflow用户

发布于 2017-02-10 15:42:21

如果禁用鼠标跟踪(默认设置),则只有在移动鼠标时按下至少一个鼠标按键时,小工具才会接收鼠标移动事件。

您可以调用hasMouseTracking()setMouseTracking()来控制鼠标的跟踪状态。

当鼠标被跟踪时,将调用mouseMoveEvent(),您可以重新植入mouseMoveEven()来获取鼠标位置,就像@sashoalm所做的那样。

顺便说一句,鼠标事件总是被转移到你的应用程序中,但是会被它的父级或者它自己过滤掉。你可以重新植入eventFilter()来编写你自己的过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42145854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档