Reputation: 636
Im using setContentsMargins
to add spacing between my tabs(central widget) and dock widgets but it's also offsetting the menu bar.
test case
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() {}
};
image
Upvotes: 0
Views: 528
Reputation: 428
I tried it this way:
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);
}
It works for the layout. But there is no drag and drop area when you undock the widget. You can dock it by double clicking the title bar. I did not figure out how to keep the drag and drop area. I am interested, if anyone knows how that can be achieved.
Upvotes: 1