在Qt5.5 C ++程序中,我有各种QDockWidgets,每个都包含一个[大部分]填充其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 5.7.0无济于事。有什么想法吗?
答案 0 :(得分:1)
如果您发送了一些您所拥有和想要的照片,那么会更容易提供帮助。
将这段代码写成示例(在QMainWindow
中执行):
QWidget* centralWidget = new QWidget( this );
centralWidget->setStyleSheet( "background: blue");
setCentralWidget( centralWidget );
QDockWidget* dock1 = new QDockWidget( "docking bar1", this );
QWidget* widget1 = new QWidget( dock1 );
dock1->setWidget( widget1 );
widget1->setStyleSheet( "background: red");
QDockWidget* dock2 = new QDockWidget( "docking bar2", this );
QWidget* widget2 = new QWidget( dock2 );
dock2->setWidget( widget2 );
widget2->setStyleSheet( "background: green");
addDockWidget(Qt::LeftDockWidgetArea, dock1);
addDockWidget(Qt::RightDockWidgetArea, dock2);
蓝色中央小部件+ 2个停靠栏,一个填充红色,另一个为绿色(可以很容易地看到边框:它们仍然是灰色区域)。
它在这里显示(Mint OS)(故意脱离绿色对接栏):
查看绿色未对接的对接栏灰色边框。 现在,将它应用于此样式表:
dock2->setStyleSheet( "QDockWidget { \
border: 0px \
}" );
然后你再也没有边界了:
但我不确定这会解决您的问题。你应该发布截图,因为对接栏看起来真的取决于操作系统。当对接栏停靠在我的操作系统上时,我看到没有边距,但你可能看到一个(注意我的截图中红色和蓝色区域之间的灰色垂直线不是边距,而是可以用来调整对接的滑块吧,我不相信你试图压制这个。)
答案 1 :(得分:1)
更新帖子后......
你必须这样做:
ui->dockable->widget()->layout()->setContentsMargins( 0,0,0,0 );
ui->dockable->layout()
不是您需要修改的布局。 QDockWidget
包含QWidget
(一种主要小部件,在创建QDockWidget
时始终可用),这是您在QtDesigner中创建布局的部件,因此您必须使用{ {3}}访问它。
或者,当您从QtDesigner创建GUI时,您也可以使用此工具删除边距,它将使GUI看起来像这样: