Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否修改QDockWidget的默认快照位置?_C++_Qt_Qwidget_Qdockwidget - Fatal编程技术网

C++ 是否修改QDockWidget的默认快照位置?

C++ 是否修改QDockWidget的默认快照位置?,c++,qt,qwidget,qdockwidget,C++,Qt,Qwidget,Qdockwidget,我正在尝试将一个UI从wxWidgets应用程序建模到QT。然而,在最初的应用程序中,除了占据主窗口外,它们还具有停靠窗口小部件,这些小部件可以在适当的位置捕捉和移动 除了主窗口外,每个框似乎都是dock小部件。如果我想将数据集窗口从左上角移动到输出调整窗口的右侧,我可以: 所以现在我的目标是尝试让QT中的UI至少完成主小部件左侧的dock小部件。在我的例子中,我至少能够得到宽度和高度,而不费吹灰之力就能显示出来。但是,我不能创建一个像输出调整这样的QDockWidget,并让它紧靠其他控件。另

我正在尝试将一个UI从wxWidgets应用程序建模到QT。然而,在最初的应用程序中,除了占据主窗口外,它们还具有停靠窗口小部件,这些小部件可以在适当的位置捕捉和移动

除了主窗口外,每个框似乎都是dock小部件。如果我想将数据集窗口从左上角移动到输出调整窗口的右侧,我可以:

所以现在我的目标是尝试让QT中的UI至少完成主小部件左侧的dock小部件。在我的例子中,我至少能够得到宽度和高度,而不费吹灰之力就能显示出来。但是,我不能创建一个像输出调整这样的QDockWidget,并让它紧靠其他控件。另一个问题是,当我尝试移动一个dock小部件时,它不会捕捉到其他小部件的右侧或左侧


这就是我的问题所在。我无法将其捕捉到dock窗口小部件的两侧。这是否需要硬编码?我知道我在网上看到过其他与这个布局非常相似的例子。然而,它们都是硬编码的。如果我可以使用creator随着时间的推移添加滑块和工具栏,那就简单多了。如果这不是我必须硬编码的东西,我如何修改我的小部件可以捕捉的位置?我试图制作一个网格布局,但是小部件没有进入网格。

通过在主窗口中启用dock嵌套,您可以实现更灵活的dock小部件放置,包括并排放置dock小部件。在Qt Designer中,选择主窗口,并在属性编辑器面板中标记QMainWindow部分中的dockNestingEnabled复选框。或者,您可以通过在代码中调用方法QMainWindow::setDockNestingEnabled来实现相同的结果

如果您希望应用程序开始时与参考应用程序中并排排列的dock小部件,那么必须使用QMainWindow::splitDockWidget方法。例如,您可以在Qt Designer中创建初始排列,如下图所示

接下来,您可以在主窗口构造函数代码中重新排列dock小部件

MainWindow::MainWindowQWidget*父项:QMainWindowparent,uinew Ui::MainWindow{ ui->setupUithis; //更改停靠窗口小部件的排列。 拆分dockwidgetui->dock1,ui->dock3,Qt::方向::水平; 拆分dockwidgetui->dock1,ui->dock2,Qt::Orientation::Vertical; } 这将产生以下结果


谢谢你的回复,我不知道为什么我没有收到通知。这解决了我的一个问题,但我的另一个问题仍然存在,我不知道如何在创建者内部复制输出调整栏。除了硬编码,没有别的方法吗?@Sailanarmo,恐怕我不明白你说的复制输出调整条是什么意思。它会添加到输出调整dock小部件中吗?不,为混淆道歉。相反,默认情况下,如何复制Output Adjustment dock小部件的位置?我可以在设计器中复制左侧的3个docket小部件,但我不知道如何在设计器中复制输出调整dock小部件的位置。我不知道如何在Qt设计器中复制此位置。据我所知,只有在代码中调用QMainWindow::splitDockWidget方法才能实现。我会在左上角的dock小部件上调用它吗?