如何在QSplitter中停靠QDockWidgets



我正在尝试让qsplitter接受qdockwidgets。到目前为止,我已经通过QT设计师完成了所有操作,而我所做的就是创建三个单独的Qwidgets。然后,我选择所有三个Qwidgets,然后右键单击它们,然后在分离器中垂直布置布局 ->。

这将所有三个小部件都很好地放在分离器中。然后,我将码头小部件拖到右上角的对象/类窗口中,然后将它们设置在拆分器小部件中。这将QDOCKWIDGET愉快地放在小部件内。但是,当我启动程序时,我无法单击并拖动码头小部件。如果我双击码头小部件,码头小部件将弹出,但是我无法将其放回,因为它从来没有技术上门。然后,这会造成小部件的问题,不允许在其他任何地方停靠。它不能在QMainWindow类或QSplitter类中停靠。

无论如何是否有QDockWidget停靠在QSplitter的内部,并且具有QDockWidget的功能?

将码头小部件添加到QSplitter后,小部件已成为分配器的一部分。

您可以尝试像这样检查

//If sure of Dockwidget at zeroth position
QDockWidget *widget1 = (QDockWidget*)ui->splitter->children().at(0);

dockwidget具有浮动作为顶级窗口的功能。但是您可以通过设置QDockWidget::NoDockWidgetFeatures

使Dockwidget看起来像其他小部件

要么:

转到qtdesigner中的对象窗口(顶 ->右)并选择添加到分离器的码头小部件。

在proeprties窗口中,向下向下滚动并查找"功能"。

然后取消选中Movalble,Closable等的功能。我把它做成了nodockwidgetFeatures。

您可以使用setFeatures(QDockWidget::NoDockWidgetFeatures)

编程设置

相关内容

  • 没有找到相关文章

最新更新