Qt QDockWidget布局,无中心小部件

Qt QDockWidget布局,无中心小部件,qt,layout,qt4,qt-designer,qdockwidget,Qt,Layout,Qt4,Qt Designer,Qdockwidget,我对QDockWidget有问题。我使用的是Qt设计器,我想构建一个只有dock小部件的应用程序,上面有一个小的属性栏。问题是我无法在没有主QWidget的情况下构建应用程序(我的意思是只使用QDockWidgets) 这是我的截图: 注释1)-这是我无法删除的空间。当我从xml中删除它时,Qt设计器崩溃。如果它是不可移动的,如何将左侧QDockWidget和右侧QDockWidget设置为整个窗口宽度的一半?这无法在Qt Designer中完成。然而,有一个例子表明,可能有一种方法可以通过编

我对QDockWidget有问题。我使用的是Qt设计器,我想构建一个只有dock小部件的应用程序,上面有一个小的属性栏。问题是我无法在没有主QWidget的情况下构建应用程序(我的意思是只使用QDockWidgets)

这是我的截图:


注释1)-这是我无法删除的空间。当我从xml中删除它时,Qt设计器崩溃。如果它是不可移动的,如何将左侧QDockWidget和右侧QDockWidget设置为整个窗口宽度的一半?

这无法在Qt Designer中完成。然而,有一个例子表明,可能有一种方法可以通过编程实现

首先,您必须在Qt设计器中将主窗口dockNestingEnabled属性设置为
true
。然后,在创建ui之后,以编程方式删除中心小部件,然后删除、重新添加和重新显示所有dock小部件


当我测试这个时,我发现我需要用一个单点定时器显示dock小部件,否则我无法垂直调整它们的大小。然而,即使有了这个小技巧,我仍然发现调整大小并不总是能正常工作。所以我不相信Qt真的支持这种使用dock小部件的方式。

您可以使用
setCentralWidget(0)删除centralWidget

在Qt Designer中创建GUI并将其转换为ui\u文件后。在
调用脚本中添加一行:

self.ui.centralwidget.hide()

您可能需要检查您的中心小部件是否被称为如上所述的

删除对中心小部件的所有引用:

pyuic5 -x uifile.ui -o main.py
sed -i /centralwidget/d main.py

运行
python3 main.py
应该可以获得所需的行为。

在centralWidget的gridlayout中可能有一行未使用。清除布局并再次进行设置。这一次,请确保没有空行。若让我猜的话,你们以前所有的按钮都直接在主窗口上,只剩下7行。然后您将它们移动到自己的小部件中?在底部的按钮上留下了很多未使用的行…我编辑了我的文章并附加了屏幕链接以提高质量。整个屏幕是3试图建立这个东西。不,只添加到QDocWidget的按钮。有3个按钮来检查我可以扩展多少QDocWidget。QWidget-负责该空间的是由设计师自动添加的。我已经清洁了中央Widget,现在有了红色圆圈。结束时,它没有隐藏,在调整大小后它正在扩展,但QDocWidget保持不变。我想有oposite:)即使我尝试了3个小部件。顶部、左侧和底部都有QWidget的空间。即使我设置了1x1像素的宽度,它也会在Designer中展开!:)