环境: ubuntu12.04 32位 + qt4.8 32位
该demo的主要功能就是,弹框(自定义widget,非dialog)显示之后,点击该父页面的其他控件,弹框隐藏。
下图为具体的父子关系:
主要代码如下:
ui->btnOther2->setFocusPolicy(Qt::NoFocus); //设置btn2无焦点,否则当你点击btn孙子的时候,孙子他爹会失去焦点
ui->widget->installEventFilter(this); //为需要监控的控件子widget安装过滤器
ui->widget->setFocus(); //显示的同时给子widget焦点。显示的同时,子widget不会拿到焦点,更不用说失去焦点了。
/事件过滤器
bool Widget::eventFilter(QObject *watched, QEvent *event)
{
if (watched==ui->widget)
{