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鼠标事件的主要内容,如果未能解决你的问题,请参考以下文章