Qt 如何以特定方式在QMainWindow上定位多个QDockWidget

Qt 如何以特定方式在QMainWindow上定位多个QDockWidget,qt,qt5,qmainwindow,qdockwidget,Qt,Qt5,Qmainwindow,Qdockwidget,我试图根据下图1中的以下布局定位N.5QDockWidget: 由于某些原因,当我在QMainWindow上添加第二个和第三个QDockwidget时,它们的位置非常不同,我不知道锚地是否有问题。因此,第四个和第五个QDockWidget的位置甚至更奇怪 有人能解释一下如何实现图1的布局吗? 感谢您指向正确的方向使用Qt Designer进行设计: <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> &l

我试图根据下图1中的以下布局定位N.5
QDockWidget

由于某些原因,当我在
QMainWindow
上添加第二个和第三个
QDockwidget
时,它们的位置非常不同,我不知道锚地是否有问题。因此,第四个和第五个
QDockWidget
的位置甚至更奇怪

有人能解释一下如何实现图1的布局吗?
感谢您指向正确的方向

使用Qt Designer进行设计:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>27</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
  <widget class="QDockWidget" name="dockWidget">
   <attribute name="dockWidgetArea">
    <number>1</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents"/>
  </widget>
  <widget class="QDockWidget" name="dockWidget_2">
   <attribute name="dockWidgetArea">
    <number>1</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents_2"/>
  </widget>
  <widget class="QDockWidget" name="dockWidget_5">
   <attribute name="dockWidgetArea">
    <number>8</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents_3"/>
  </widget>
  <widget class="QDockWidget" name="dockWidget_3">
   <attribute name="dockWidgetArea">
    <number>2</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents_6"/>
  </widget>
  <widget class="QDockWidget" name="dockWidget_4">
   <attribute name="dockWidgetArea">
    <number>2</number>
   </attribute>
   <widget class="QWidget" name="dockWidgetContents_7"/>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

主窗口
0
0
800
600
主窗口
0
0
800
27

你能解释一下为什么我拖放
QDockWidget
时,它们会出现非常奇怪的位置吗?有什么东西我应该锚定在这个特定对象的属性上吗?@Emanuele我建议我使用Qt Designer做的.ui,它工作正常,所以我猜你把QDockWidget放在了一个不合适的位置
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow w;

    QDockWidget *dock_widget_a = new QDockWidget;
    w.addDockWidget(Qt::LeftDockWidgetArea, dock_widget_a);
    QDockWidget *dock_widget_b = new QDockWidget;
    w.addDockWidget(Qt::LeftDockWidgetArea, dock_widget_b);

    QDockWidget *dock_widget_c = new QDockWidget;
    w.addDockWidget(Qt::RightDockWidgetArea, dock_widget_c);
    QDockWidget *dock_widget_d = new QDockWidget;
    w.addDockWidget(Qt::RightDockWidgetArea, dock_widget_d);

    QDockWidget *dock_widget_e = new QDockWidget;
    w.addDockWidget(Qt::BottomDockWidgetArea, dock_widget_e);

    w.setCentralWidget(new QWidget);
    w.resize(640, 480);
    w.show();
    return a.exec();
}