如何删除QMainWindow和mdiArea之间的空间(边距)?

Lio*_*ing 6 c++ qt qt5

我有一个QMainWindow,我已插入mdiArea主窗口.
您必须先看到以下图像:

正如您所见,灰色区域mdiArea和主窗口之间的空间(边距)mdiArea是我想要删除它.
我使用过setContentsMargins函数,但没有做任何事情.

我怎样才能删除这些空格?

我希望如下图所示: 在此输入图像描述

Tay*_*510 9

QMainWindow有一个具有布局的中央小部件.您使用的布局QMainWindow应该在其中央窗口小部件上使用.因此你必须打电话

QWidget* QMainWindow::centralWidget() 第一,

所以你可以先获得中央小部件然后再使用

void QLayout::setContentsMargins(int left, int top, int right, int bottom)

调整其布局.下图来自Qt的文档.

在此输入图像描述 在此输入图像描述

不支持创建没有中央窗口小部件的主窗口.您必须拥有一个中央小部件,即使它只是一个占位符.


例如,您可以在QMainWindow构造函数中包含以下内容:

centralWidget()->layout()->setContentsMargins(0, 0, 0, 0);
statusBar()->hide();
ui->mainToolBar->hide();
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

状态栏工具栏被隐藏,以去除尽可能多的空白地.