【问题标题】:How to have one dock widget on left edge of the screen and the other on the right edge如何让一个停靠小部件位于屏幕的左边缘,而另一个位于屏幕的右边缘
【发布时间】:2018-06-01 06:54:29
【问题描述】:

我一直在尝试让两个 QDockWidget 不并排放置,而是一个放在主窗口的左边缘,另一个放在主窗口的右边缘。

我已经尝试了来自 Qt 论坛的所有解决方案。将LeftDockWidgetArea 用于左侧停靠小部件,将RightWidgetArea 用于右侧。我也打过电话

setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);

addDockWidget(Qt::LeftDockWidgetArea, leftDockWidget);
addDockWidget(Qt::RightDockWidgetArea, rightDockWidget);

但停靠栏小部件总是并排放置。我做错了什么?

这是一张展示问题的图片。

【问题讨论】:

标签: c++ qt qdockwidget


【解决方案1】:

从 Qt 5 开始,以下代码应该可以在 Windows 和 Linux 上运行。

#include <QDockWidget>
...
QDockWidget* leftDockWidget = new QDockWidget(tr("Left Dock Widget"), this);
leftDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea);
this->addDockWidget(Qt::LeftDockWidgetArea,leftDockWidget);
//
QDockWidget* rightDockWidget = new QDockWidget(tr("Right Dock Widget"), this);
rightDockWidget->setAllowedAreas(Qt::RightDockWidgetArea);
this->addDockWidget(Qt::RightDockWidgetArea, rightDockWidget);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多