2012-10-05 28 views
0

我想基於QPlainTextEdit實現以下功能攔截mousePressEvent - 默認情況下它應該顯示「請輸入的東西在這裏」消息,上點擊,它就會消失,並允許編輯。的子部件(QT)

要做到這一點,我需要攔截的窗口小部件是否已被點擊。我可以這樣做,而不分類QPlainTextEdit?

能否父控件onMousePressEvent獲得該事件屬於哪個孩子的小工具?

回答

1

我可以這樣做沒有子項目分級QPlainTextEdit?

是的,你可以實現一個事件過濾器:

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

本質上講,你可以過濾掉髮往純文本編輯鼠標事件。只要過濾器遇到鼠標按下事件,就可以清除純文本編輯的內容。

能否父控件onMousePressEvent獲得該事件屬於哪個孩子的小部件 ?

不是沒有事件過濾。兒童小部件,然後再只以父控件如果孩子小部件不接受的情況下Qt的事件傳播系統發送事件。