1. 实现鼠标点击窗体外部,隐藏窗体的功能
2. Qt 中如何捕获窗口停用和激活的消息 Activate&Deactivate

重写event函数就可以了。event函数的作用就在于事件的分发。如果想在事件的分发之前就进行一些操作,比如监听某个按键的按下。
例子:
bool TrayWgt::event(QEvent* e)
{
//显示在屏幕上
if (QEvent::Show == e->type())
activateWindow();//将窗体变成顶层窗体
//禁用状态
else if (QEvent::WindowDeactivate == e->type())
this->hide();
return QWidget::event(e); //按照原来的事件处理
}