gpt4 book ai didi

c++ - QMainWindow Qt5.7 中的 Force Tabbed Dock

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:06 24 4
gpt4 key购买 nike

我试图让我的 QMainWindow 只允许选项卡式 QDockWidgets。如果我正确理解 Qt 文档,它应该可以与 setDockOptions 方法一起使用。

以下代码对我不起作用:

 QMainWindow window;
window.setDockOptions(QMainWindow::ForceTabbedDocks);

我做错了什么?或者它是当前 Qt 版本中的错误?我在 MacPro 上编码,我使用的是 Qt 5.7。

谢谢

最佳答案

ForceTabbedDocks 仅适用于用户与停靠栏的交互。

要以编程方式在选项卡中添加新停靠栏,您需要使用QMainWindow::tabifyDockWidgets。例如,

void MainWindow::addTabbedDock(Qt::DockWidgetArea area, QDockWidget *widget)
{
QList<QDockWidget*> allDockWidgets = findChildren<QDockWidget*>();
QVector<QDockWidget*> areaDockWidgets;
for(QDockWidget *w : allDockWidgets) {
if(dockWidgetArea(w) == area) {
areaDockWidgets.append(w);
}
}

if(areaDockWidgets.empty()) {
// no other widgets
addDockWidget(area, widget);
} else {
tabifyDockWidget(areaDockWidgets.last(), widget);
}
}

关于c++ - QMainWindow Qt5.7 中的 Force Tabbed Dock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com