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

时间:2014-06-16 08:51:54

标签: c++ qt qt5

我有一个QMainWindow,我在主窗口中插入了mdiArea 您必须先看到以下图片:

如您所见,灰色区域为mdiArea,主窗口与mdiArea之间的空格(边距)是我要删除的内容。
我使用了setContentsMargins函数,但没有做任何事情。

如何删除这些空格?

我希望如下图所示: enter image description here

1 个答案:

答案 0 :(得分:9)

QMainWindow有一个中央小部件,它有一个布局。您在QMainWindow上使用的布局应该在其中央窗口小部件上使用。因此你必须致电

QWidget* QMainWindow::centralWidget()首先,

因此您可以先获取中央窗口小部件然后再使用

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

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

enter image description here enter image description here

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


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

centralWidget()->layout()->setContentsMargins(0, 0, 0, 0);
statusBar()->hide();
ui->mainToolBar->hide();

enter image description here

状态栏工具栏已被隐藏,以便尽可能多地删除空格