Как игнорировать событие изменения размера в Qt3? - PullRequest
0 голосов
/ 15 марта 2012

когда я увеличиваю размер левой области дока (вручную), главное окно также увеличивает его размер. но это не предел! он может стать шире, чем размер экрана. Я хочу предотвратить это. я попытался повторно реализовать метод resizeEvent () главного окна. это то, что я пробовал.

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

это работает. но он имеет эффект мерцания, потому что я снова настраиваю размер. Я думаю, что я могу решить эту проблему, игнорируя событие. но я не могу найти способ сделать это. пожалуйста помоги !! спасибо.

1 Ответ

0 голосов
/ 21 марта 2012

Решение ... ... 1001 *

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);;
    }
}
...