码头的 Qt 调整大小事件

标签 qt resize signals dock qdockwidget

有没有办法在 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/

相关文章:

delphi - 如何在使用 ScaleBy() 后将 delphi TForm 重置为原始外观

initialization - VHDL/如何初始化我的信号?

c - 当程序接收到 SIGTSTP 信号时会发生什么

Qt如何在QTableWidget的单元格内插入字符串

c++ - Qt:具有分类角轴的极坐标图

javascript - 更改 src 后,图像在 Chrome 中不会调整大小

python - 什么可以使 signal.signal 长时间阻塞?

c++ - 比较QList qt5.3中的项目

qt - QGraphicsScene::~QGraphicsScene() 段错误

java - 调整 JPanel 大小