我有一个带有三个停靠小部件的应用程序。这些是由以下代码创建的:
dock = new QDockWidget(tr("Some title"));
dock->setWidget(some_widget);
dock->setContextMenuPolicy(Qt::PreventContextMenu);
dock->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
addDockWidget(Qt::TopDockWidgetArea, dock);
dock2
和dock3
然后按
tabifyDockWidget(dock1, dock2);
tabifyDockWidget(dock2, dock3);
我想以编程方式执行此操作,但我无法弄清楚如何操作。做的时候
splitDockWidget(dock1, dock2, Qt::Horizontal);
没有任何反应。做的时候
splitDockWidget(dock1, dock2, Qt::Vertical);
那我在这里做错了什么?
答案 0 :(得分:0)
您需要创建右链splitDockWidget(),1> 2垂直,1> 3水平,2> 3水平,示例
dock1 = new QDockWidget(tr("dock1"));
dock2 = new QDockWidget(tr("dock2"));
dock3 = new QDockWidget(tr("dock3"));
dock1->setWidget(some_widget1);
dock2->setWidget(some_widget2);
dock3->setWidget(some_widget3);
dock1->setContextMenuPolicy(Qt::PreventContextMenu);
addDockWidget( Qt::LeftDockWidgetArea, dock1);
addDockWidget( Qt::LeftDockWidgetArea, dock2);
addDockWidget( Qt::RightDockWidgetArea, dock3);
splitDockWidget(dock1, dock2, Qt::Vertical);
splitDockWidget(dock1, dock3, Qt::Horizontal);
splitDockWidget(dock2, dock3, Qt::Horizontal);