Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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++ QGridLayout内可拆卸QDialogs的区域_C++_Qt_Qdockwidget_Qgridlayout_Qlayout - Fatal编程技术网

C++ QGridLayout内可拆卸QDialogs的区域

C++ QGridLayout内可拆卸QDialogs的区域,c++,qt,qdockwidget,qgridlayout,qlayout,C++,Qt,Qdockwidget,Qgridlayout,Qlayout,我有一个QMainWindow,其中包含各种小部件的QGridLayout,如下所示: 我会在不同的时间出现各种各样的小输入对话框,我希望它们出现在布局的特定单元格中(图片中紫色选项卡小部件下方的亮青色区域)。默认情况下,它们会显示在此单元格中,但应该是可分离的,并且可以根据需要移动(就像常规的、游离的QDialog一样) 最好的办法是什么 我试着使用QDockWidget并将其添加到网格布局中,但似乎我无法将其取消停靠并四处移动,即使调用setFeatures也应该允许这种自由 addDoc

我有一个QMainWindow,其中包含各种小部件的QGridLayout,如下所示:

我会在不同的时间出现各种各样的小输入对话框,我希望它们出现在布局的特定单元格中(图片中紫色选项卡小部件下方的亮青色区域)。默认情况下,它们会显示在此单元格中,但应该是可分离的,并且可以根据需要移动(就像常规的、游离的QDialog一样)

最好的办法是什么

我试着使用QDockWidget并将其添加到网格布局中,但似乎我无法将其取消停靠并四处移动,即使调用setFeatures也应该允许这种自由


addDockWidget函数允许所需的移动,但这不允许我将停靠区域合并到网格中;它只是将dock小部件放在整个主窗口的一侧。

这有点像一个解决办法:我将tab小部件本身放在DockWidget中,然后像以前一样为对话框制作dock小部件,并将它们都放在主窗口的同一DockWidget区域中。这样可以很好地堆叠它们(尽管这确实意味着上面的工具栏和文本编辑不再完全重叠),并且非常接近所需的结果。要想真正做到这一点,我想我也可以尝试停靠上面的工具栏,这将是灵活的,但现在,这就可以了!