在Qt5.5 C++程序中,我有各种QDockWidgets,每个QDockWidgets包含一个[主要]填充其QDockWidget的小部件。但是,小部件周围有10像素的边框,我无法摆脱它。

c++ - 可停靠窗口中的Qt填充和边距-LMLPHP

以下尝试似乎没有实现任何目的:

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小部件应用程序
  • 编辑表单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填充和边距-LMLPHP

    关于c++ - 可停靠窗口中的Qt填充和边距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40594721/

    10-09 09:03