如何将 QDockWidget 锚定到右上角区域?

How to anchor QDockWidget to top right area?

有一个QMainWindow和两个QDockWidget。 第一个小部件停靠在顶部,第二个小部件停靠在左侧。 结果是第一个小部件占据了整个宽度,第二个小部件占据了剩余区域。我想让第二个小部件占据整个高度,第一个占据剩余区域。

直观地展示这一点。 “-” - 第一个小部件,“|” - 第二个,o - 中央小部件。

默认 Qt 行为:

------
|ooooo
|ooooo
|ooooo

我需要这个:

|-----
|ooooo
|ooooo
|ooooo

请看QMainWindow::​setCorner()documentation。 这将允许您自定义角 -> dockwidget_area.

比如根据你的问题,你应该调用:

QMainWindow * w = ...;
w->setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);

将左上角与左侧 dockwidget 区域相关联。

简单!