Qt QDockWidget增加了额外的边距空间

时间:2017-03-07 03:38:24

标签: c++ qt

我有一个QDockWidget,其中Dock的内容和大小应该相同。我目前遇到一个问题,虽然码头的大小是有效的;父中央小部件在右侧创建一个4像素的间隙,在调整主窗口大小时我似乎无法收缩。这是一个截图:

Broken dock

这是我用来强制停靠到特定大小的代码;工作正常,使码头的大小正确。 (它还包含一个与底座尺寸相同的框架):

ui->dockFrame->resize(w, h);
ui->dock->setFixedSize(w, h);

我也尝试在主窗口和中央窗口小部件中使用layout()->setContentsMargins(0,0,0,0);无效。

有没有人知道这些额外像素的来源,以及如何解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:2)

差距与QDockWidget几乎没有关系。它是QMainWindow的属性 - 它是停靠窗口小部件之间的移动分隔符,或者停靠窗口小部件和中央窗口小部件之间。

您可以使用样式表删除它:

QMainWindow::separator
{
  width: 0px; /* when vertical */
  height: 0px; /* when horizontal */
}

在您的C ++代码中:

mainwindow->setStyleSheet("QMainWindow::separator{ width: 0px; height: 0px; }");