0

我写了一个最小的例子,它有一个侧边栏,其中包含一个QToolButton。我设置setAutoRaise(true)QToolButton,所以当悬停在它上面时,按钮会升起。但目前我有一个小问题。从下图可以看出,当鼠标悬停在按钮上时,左右边框并没有完全占据整个屏幕。
这是这样的:
在此处输入图像描述

这个例子我想要按钮看起来像:
在此处输入图像描述

这是我的代码:

sidebarDock = new QDockWidget(this);
addDockWidget(Qt::LeftDockWidgetArea, sidebarDock);

//hide dock widget title bar
QWidget *titleBarWidget = new QWidget(sidebarDock);
sidebarDock->setTitleBarWidget(titleBarWidget);
sidebarDock->titleBarWidget()->hide();

dockWidget = new QWidget(sidebarDock);
dockWidget->setObjectName("DockWidget");
dockWidget->setStyleSheet("#DockWidget { background-color: #F7DC6F; }");
dockVLayout = new QVBoxLayout(dockWidget);
overviewBtn = new QToolButton(dockWidget);
overviewBtn->setAutoRaise(true);
overviewBtn->setIcon(QIcon(":/Icons/overview.png"));
overviewBtn->setText("Overview");
overviewBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
dockVLayout->addWidget(overviewBtn);
dockWidget->setLayout(dockVLayout);
sidebarDock->setWidget(dockWidget);

那么有人可以告诉我我错过了哪个部分将QQToolButton左右边框完全设置到一边?或者有没有更好的方法来实现这一点?谢谢。

4

1 回答 1

0

现在我解决了这个问题。
只需在代码片段中添加一行即可将布局的边距设置为 0,使用:dockVLayout->setMargin(0)

于 2018-05-10T07:16:08.697 回答