即使拦截鼠标事件,Qt 窗口也会移动

Posted

技术标签:

【中文标题】即使拦截鼠标事件,Qt 窗口也会移动【英文标题】:Qt window moves even when intercepting mouse events 【发布时间】:2016-03-24 16:33:39 【问题描述】:

我有一个 Qt OpenGL(使用 qt 5.5)应用程序,您可以在其中单击以拖动 3D 场景中的对象。

这是通过拥有一个覆盖mousePressEventmouseReleaseEventmouseMoveEventQOpenGLWidget 子类来实现的。

但是,当我拖动一个对象时,我可以在窗口开始激活窗口移动模式之前将它移动一帧,而我的鼠标移动实际上开始移动整个窗口,就像我在拖动标题栏一样。

我怀疑应用程序和我的窗口管理器 (kwin 5.4.3) 之间存在冲突,但我不知道去哪里调试这个问题,以及这是我的应用程序的错误还是我必须修复我的窗口管理器。

【问题讨论】:

【参考方案1】:

您可能需要调用您正在处理的事件的accept() 方法。

【讨论】:

以上是关于即使拦截鼠标事件,Qt 窗口也会移动的主要内容,如果未能解决你的问题,请参考以下文章

Qt 隐藏标题栏 窗口移动 鼠标事件

即使鼠标不移动,D3'Drag'事件也会触发

qt linux窗口大小变化后刷新鼠标事件

Qt 的鼠标事件

javascript --- 鼠标事件

QT如何获取窗口外的鼠标点击事件,或者鼠标坐标