我在OpenGL中使用QWindow
(非QMainWindow
)。我需要使用QWindow
来正确控制OGL上下文。
我正在尝试按照Scribble示例实现类似于平移的内容,但我找不到触发mouseMoveEvent()
的范式方法。
如何在mouseMoveEvent()
不断触发的情况下获得“工具提示”效果,类似于setMouseTracking()
?
答案 0 :(得分:1)
对我来说很好。我使用MainWindow创建了一个测试程序,该程序继承QWindow
而不是QMainWindow,并处理鼠标移动事件以打印光标位置:
void MainWindow::mouseMoveEvent(QMouseEvent *e)
{
qDebug("%d, %d", e->pos().x(), e->pos().y());
}
它有效,因为我移动鼠标即使没有按任何鼠标按钮也可以获得事件。
答案 1 :(得分:0)
如果禁用鼠标跟踪(默认设置),则在移动鼠标时至少按下一个鼠标按钮时,窗口小部件仅接收鼠标移动事件。
您可以致电hasMouseTracking()
或setMouseTracking()
来控制鼠标的追踪状态。
跟踪鼠标时,将调用mouseMoveEvent()
,您可以重新填充mouseMoveEven()
以获取鼠标位置,就像@sashoalm所做的那样。
eventFilter()
来编写自己的过滤器。