0

当我增加左停靠区大小(手动)时,主窗口也会增加其大小。但它没有限制!它可以变得比屏幕尺寸更宽。我想阻止它。我尝试重新实现主窗口的 resizeEvent() 方法。这是我尝试过的。

void MyMain::resizeEvent(QResizeEvent *e)
{
     if (newMainWindowWidth > screenWidth)
     {
          leftDockWindow->setFixedExtentWidth(
                   leftDockWidth - (newWidth - screenWidth));
          leftDockWindow->adjustSize();
          adjustSize(); // flicker effect :(
     }
}

这行得通。但它有闪烁效果,因为我再次调整大小。我认为我可以通过忽略事件来解决这个问题。但我找不到办法做到这一点。请帮忙 !!谢谢。

4

1 回答 1

0

解决方案是...

bool MyClass::eventFilter(QObject *obj, QEvent *e)
{
    if (e->type() == QEvent::Resize)
    {
        if (obj == myObj)
        {
            doSomethingWithObj(); 
            return true;
        }
        else
        {
            return false;
        }
    }
    else
    {
        return QWidget::eventFilter(obj, e);;
    }
}
于 2012-03-21T09:14:14.550 回答