Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
码头的Qt调整事件_Qt_Resize_Signals_Dock_Qdockwidget - Fatal编程技术网

码头的Qt调整事件

码头的Qt调整事件,qt,resize,signals,dock,qdockwidget,Qt,Resize,Signals,Dock,Qdockwidget,有没有一种方法可以捕获Qt中停靠点的调整大小事件?我需要能够检测坞的大小(而不仅仅是它的位置或“功能”改变时)。QDockWidget似乎没有“调整大小”的信号。如果您不希望子类化以获得调整大小事件控件,您可以 小示例如下(MainWindow.h):(MainWindow在这里保存DockWidget) 在(main window.cc)中: MainWindow::MainWindow(QWidget*父项) :QWidget(父项){ 用户界面设置用户界面(本); ui.dockWidge

有没有一种方法可以捕获Qt中停靠点的调整大小事件?我需要能够检测坞的大小(而不仅仅是它的位置或“功能”改变时)。QDockWidget似乎没有“调整大小”的信号。

如果您不希望子类化以获得调整大小事件控件,您可以

小示例如下(
MainWindow.h
):(MainWindow在这里保存DockWidget)

在(
main window.cc
)中:

MainWindow::MainWindow(QWidget*父项)
:QWidget(父项){
用户界面设置用户界面(本);
ui.dockWidget->installEventFilter(此);
}
bool主窗口::事件过滤器(QObject*obj,QEvent*event){
if(event->type()==QEvent::Resize&&obj==ui\uux.dockWidget){
QResizeEvent*resizeEvent=静态_转换(事件);
qDebug(“坞大小调整(新尺寸)-宽度:%d高度:%d”,
resizeEvent->size().width(),
resizeEvent->size().height());
} 
返回QWidget::eventFilter(obj,事件);
}
protected:
  bool eventFilter(QObject *obj, QEvent *event);
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);
}