2012-10-05 24 views
0

我想基于QPlainTextEdit实现以下功能拦截mousePressEvent - 默认情况下它应该显示“请输入的东西在这里”消息,上点击,它就会消失,并允许编辑。的子部件(QT)

要做到这一点,我需要拦截的窗口小部件是否已被点击。我可以这样做,而不分类QPlainTextEdit?

能否父控件onMousePressEvent获得该事件属于哪个孩子的小工具?

回答

1

我可以这样做没有子项目分级QPlainTextEdit?

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

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

本质上讲,你可以过滤掉发往纯文本编辑鼠标事件。只要过滤器遇到鼠标按下事件,就可以清除纯文本编辑的内容。

能否父控件onMousePressEvent获得该事件属于哪个孩子的小部件 ?

不是没有事件过滤。儿童小部件,然后再只以父控件如果孩子小部件不接受的情况下Qt的事件传播系统发送事件。