我正在使用setContentsMargins
在我的标签(中央窗口小部件)和停靠窗口小部件之间添加间距,但它也会偏移菜单栏。
测试用例
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0)
: QMainWindow(parent)
{
QMenu* fileMenu = menuBar()->addMenu("File");
fileMenu->addMenu("menu item");
QTabWidget* tabs = new QTabWidget();
tabs->addTab(new QWidget(), "something");
setCentralWidget(tabs);
QDockWidget* dw = new QDockWidget("docking", this);
dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
dw->setWidget(new QTabWidget(dw));
addDockWidget(Qt::RightDockWidgetArea, dw);
setContentsMargins(5, 5, 5, 5);
resize(500, 500);
}
~MainWindow() {}
};
图片
答案 0 :(得分:1)
我试过这种方式:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QMenu* fileMenu = menuBar()->addMenu("File");
fileMenu->addMenu("menu item");
QWidget* widget = new QWidget(this);
QHBoxLayout *layout = new QHBoxLayout(widget);
QTabWidget* tabs = new QTabWidget(widget);
tabs->addTab(new QWidget(), "something");
QDockWidget* dw = new QDockWidget("docking", widget);
dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
dw->setWidget(new QTabWidget(dw));
addDockWidget(Qt::RightDockWidgetArea, dw);
resize(500, 500);
widget->setLayout(layout);
layout->addWidget(tabs);
layout->addWidget(dw);
layout->setContentsMargins(50, 50, 50, 50);
setCentralWidget(widget);
}
适用于布局。但是,当您取消停靠窗口小部件时,没有拖放区域。您可以通过双击标题栏来停靠它。我没弄明白如何保持拖放区域。如果有人知道如何实现,我感兴趣。