2013-03-11 2 views
3

Qt에서 도크의 크기 조정 이벤트를 잡는 방법이 있습니까? 도크의 크기가 변경되었을 때뿐만 아니라 위치 나 '기능'이 변경 될 때도 감지 할 수 있어야합니다. QDockWidget에 '크기가 조정 된'신호가없는 것 같습니다.도크에 대한 Qt 크기 조정 이벤트

protected: 
    bool eventFilter(QObject *obj, QEvent *event); 

과의 (MainWindow를 여기 DockWidget을 보유() :

답변

6

그냥 이벤트 컨트롤의 크기를 조정 얻기 위해 서브 클래스하지 않으려면, 당신이 할 수있는 installEventFilter

작은 예를의 모습 이 (MainWindow.h가) 을

MainWindow.cc) :

MainWindow::MainWindow(QWidget* parent) 
    : QWidget(parent) { 
    ui_.setupUi(this); 
    ui_.dockWidget->installEventFilter(this); 
} 

bool MainWindow::eventFilter(QObject *obj, QEvent *event) { 
    if (event->type() == QEvent::Resize && obj == ui_.dockWidget) { 
     QResizeEvent *resizeEvent = static_cast<QResizeEvent*>(event); 
     qDebug("Dock Resized (New Size) - Width: %d Height: %d", 
      resizeEvent->size().width(), 
      resizeEvent->size().height()); 
    } 
    return QWidget::eventFilter(obj, event); 
} 
+0

감사합니다. –

관련 문제