有没有办法在 Qt 中捕获码头的调整大小事件?我需要能够检测到码头何时调整大小(而不仅仅是当它的位置或“功能”发生变化时)。看起来 QDockWidget 没有“调整大小”的信号。
最佳答案
如果您不希望子类化只是获得调整大小的事件控制,您可以 installEventFilter
小例子看起来像( MainWindow.h
):(MainWindow 在此处保存 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);
}
关于码头的 Qt 调整大小事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15331854/