我正在尝试让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
要么:
转到qtdesigner中的对象窗口(顶 ->右)并选择添加到分离器的码头小部件。
在proeprties窗口中,向下向下滚动并查找"功能"。
然后取消选中Movalble,Closable等的功能。我把它做成了nodockwidgetFeatures。
或
您可以使用setFeatures(QDockWidget::NoDockWidgetFeatures)