3
有沒有辦法在Qt中捕捉docks的resize事件?我需要能夠檢測碼頭何時調整大小(而不僅僅是當它的位置或「特徵」改變時)。看起來QDockWidget沒有「調整大小」的信號。Qt resize event for docks
有沒有辦法在Qt中捕捉docks的resize事件?我需要能夠檢測碼頭何時調整大小(而不僅僅是當它的位置或「特徵」改變時)。看起來QDockWidget沒有「調整大小」的信號。Qt resize event for docks
如果你不希望子類只得到調整事件的控制,可以installEventFilter
小例子看起來像(MainWindow.h
):(主窗口持有DockWidget這裏)
protected:
bool eventFilter(QObject *obj, QEvent *event);
和( 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);
}
謝謝,這作品! – 2013-03-11 10:31:06