2012-03-15 3 views
0

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

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

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

+0

Почему вы не используете минимальный размер и фиксированный размер политики вместо? –

+0

Я не могу использовать фиксированный размер, потому что я должен разрешить изменение размера. Приложение будет работать на нескольких мониторах ... – shan

+0

Хорошо .. это может быть сделано путем повторного использования метода EventFilter() MainWindow. благодаря... – shan

ответ

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);; 
    } 
} 
Смежные вопросы