在 Qt5.5 C++ 程序中,我有各种 QDockWidget,每个 QDockWidget 都包含一个 [大部分] 填充其 QDockWidget 的小部件。但是,小部件周围有一个 10px 的边框,我无法摆脱它。
以下尝试似乎没有取得任何成果:
ui->dockable->layout()->setMargin(0);
ui->dockable->layout()->setSpacing(0);
ui->dockable->layout()->setContentsMargins(0,0,0,0);
ui->dockable->setContentsMargins(0,0,0,0);
ui->dockable->setStyleSheet("margin: 0px; padding: 0px");
ui->dockable->setStyleSheet("QDockWidget{ border: 0px }");
this->layout()->setContentsMargins(0,0,0,0);
重现问题:
- 文件 -> 新项目 -> Qt widgets 应用程序
- 编辑窗体 mainwindow.ui
- 将 dockwidget 拖到窗体上
- 将其他小部件拖到 dockwidget 中
- Dockwidget 背景上下文菜单 -> 布局 -> 垂直
- 应该像上面那样提供屏幕截图(在 Windows 7 中)
升级到 Qt 5.7.0 没有帮助。有什么想法吗?
最佳答案
更新帖子后...
你必须做到:
ui->dockable->widget()->layout()->setContentsMargins( 0,0,0,0 );
ui->dockable->layout()
不是你需要修改的布局。 QDockWidget
包含一个 QWidget
(一种主要的小部件,在创建 QDockWidget
时始终可用),这是您在其中创建布局的那个来自 QtDesigner,所以你必须使用 QDockWidget::widget()访问它。
或者,当您从 QtDesigner 创建 GUI 时,您也可以使用此工具删除边距,它会使 GUI 看起来像这样:
关于c++ - 可停靠窗口中的 Qt 填充和边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40594721/