QT release 模式下 采用 installEventFilter 导致布局不见了

bool Widget::installFilter(QObject *obj) // 安装事件过滤
{
    obj->installEventFilter(this);
    QObjectList children = obj->children();
    for (int i = 0; i < children.size(); i++)
    {
        installFilter(children.at(i));
    }
   return false;

}

release 下
QT release 模式下 采用 installEventFilter 导致布局不见了_第1张图片
debugQT release 模式下 采用 installEventFilter 导致布局不见了_第2张图片

解决办法 加上  return  QWidget::eventFilter(obj, event);
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::MouseButtonPress)
    {

    }
    return  QWidget::eventFilter(obj, event);
}

再次运行
QT release 模式下 采用 installEventFilter 导致布局不见了_第3张图片

参考资料 2019.6.12 QLabel安装事件过滤器后上面的文字消失

你可能感兴趣的:(qt,开发语言)