【问题标题】:Intercepting mousePressEvent on Child widget (qt)在子小部件(qt)上拦截 mousePressEvent
【发布时间】:2012-10-05 22:55:39
【问题描述】:

我正在尝试基于 QPlainTextEdit 实现以下功能 - 默认情况下,它应该显示“请在此处输入内容”消息,单击时它会消失并允许编辑。

为此,我需要拦截小部件是否已被点击。我可以在没有子类 QPlainTextEdit 的情况下这样做吗?

父母的widget onMousePressEvent能否获取到该事件属于哪个孩子的widget?

【问题讨论】:

    标签: qt qtgui


    【解决方案1】:

    我可以在没有子类 QPlainTextEdit 的情况下这样做吗?

    是的,你可以实现一个事件过滤器:

    http://qt-project.org/doc/qt-4.8/eventsandfilters.html#event-filters

    本质上,您可以过滤掉用于纯文本编辑的鼠标事件。每当您的过滤器遇到鼠标按下事件时,您都可以清除纯文本编辑的内容。

    父母的widget onMousePressEvent能否获取到哪个孩子的widget 该事件属于?

    并非没有事件过滤。 Qt 的事件传播系统首先将事件发送给子小部件,如果子小部件不接受事件,则仅发送给父小部件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多