我正在尝试基于QPlainTextEdit实现以下功能 - 默认情况下,它应显示“请输入此处的内容”消息,点击后,它将消失并允许编辑。
为此,我需要拦截是否已单击窗口小部件。我可以不对QPlainTextEdit进行子类化吗?
父母的小部件onMousePressEvent可以获取该事件所属的子小部件吗?
答案 0 :(得分:1)
我可以不对QPlainTextEdit进行子类化吗?
是的,您可以实现事件过滤器:
http://qt-project.org/doc/qt-4.8/eventsandfilters.html#event-filters
基本上,您可以过滤掉用于纯文本编辑的鼠标事件。每当您的过滤器遇到鼠标按下事件时,您都可以清除纯文本编辑的内容。
父母的小部件onMousePressEvent可以获取哪个子小部件 该事件属于?
不是没有事件过滤。 Qt的事件传播系统首先向子窗口小部件发送事件,如果子窗口小部件不接受事件,则仅向父窗口小部件发送事件。