QT编程Widget鼠标事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT编程Widget鼠标事件相关的知识,希望对你有一定的参考价值。

为什么我的QWidget可以响应鼠标单击事件?不能响应鼠标的释放和双击事件呢?求助

某种情况下,响应单击事件了,双击和释放就不响应了,比如,响应单击事件时弹出一个消息框,双击和释放就没法响应了,建议不要把双击和单击同时使用。 参考技术A 一般是代码的问题,看看信号、槽是否正确。

Qt:QMouseEvent 没有从 QGLWidget 传播出去

【中文标题】Qt:QMouseEvent 没有从 QGLWidget 传播出去【英文标题】:Qt: QMouseEvent not propagating out of QGLWidget 【发布时间】:2015-01-29 01:47:24 【问题描述】:

QGLWidget 是否可以传播其鼠标事件?

我目前有一个 QGlWidget 作为我的主窗口的子窗口,但我似乎无法处理在它的框架上发生的鼠标事件。

也许我犯了一个根本性的缺陷,但是 qglwidet 本身中的鼠标事件被设置为 event->accept(),而且我也没有阻止来自 qglwidget 的传出信号。

我有一个解决方法,我只是从 qglwidget 中的每个鼠标事件中发出新信号,并将它们连接到我的主窗口中,但我只是好奇这是否是一个已知问题,我做错了,或者根本不可能。

【问题讨论】:

【参考方案1】:

来自关于接受事件的 Qt 文档:

设置accept参数表示事件接收者想要 事件。不需要的事件可能会传播到父窗口小部件。

因此,当您在小部件上接受鼠标事件时,它不会传播到主窗口。您可以在QGlWidget 中处理该事件,但不必设置接受标志。只需将其传播给父级即可。

【讨论】:

即使我没有将事件设置为接受,但事件仍然不会传播

以上是关于QT编程Widget鼠标事件的主要内容,如果未能解决你的问题,请参考以下文章

QT鼠标点击响应事件

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

QT中QTableWidget鼠标事件

设置控件响应 鼠标事件 Qt::WA_TransparentForMouseEvents

QT--吃月亮小游戏

QT父子窗口事件传递与事件过滤器(讲了一些原理,比较清楚)