没有中心窗口的QDockWidget布局

4

我有一个与QDockWidget相关的问题。 我正在使用Qt Designer,并且想要构建一个仅使用dock-widgets的应用程序,并在上方有一个小工具栏。 问题是,我无法构建没有主QWidget的应用程序(我的意思是只有 QDockWidgets)。

这是我的截图:

qtdesigner

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


您可能在centralWidget的gridlayout中有一个未使用的行。清除布局并重新设置它。这一次确保没有空行。如果我要猜测的话,您以前可能把所有按钮直接放在mainwindow上,留下了7行。然后您将它们移动到了自己的小部件中?这样就会留下许多未使用的行,由底部的按钮跨越。 - Sebastian Lange
我已经编辑了我的帖子,并附上了屏幕链接以获得更好的质量。整个屏幕是3次尝试构建这个东西。不,按钮只添加到了QDocWidget中。有3个按钮来检查我可以扩展QDocWidget的程度。QWidget - 负责该空间的是由设计师自动添加的。我已经清理了CentralWidget - 现在有一个红色的圆圈。它没有隐藏,调整大小后它会扩展,但QDocWidget保持不变。我希望相反:) - Przemek Lewandowski
即使我尝试使用三个小部件:顶部,左边和底部,还是有QWidget的空间。即使我将宽度设置为1x1像素,在设计师中它仍会扩展! :) - Przemek Lewandowski
4个回答

2
您可以使用setCentralWidget(0);来删除centralWidget。

1
这无法在Qt Designer内完成。但是,有一个Qt论坛主题提出了一种通过编程实现的方法。
首先,在Qt Designer中将主窗口的dockNestingEnabled属性设置为true。然后,在创建ui之后,以编程方式删除中央小部件,然后还要删除、重新添加和重新显示所有停靠小部件。
当我测试时,我发现需要使用单次触发器显示停靠小部件,否则我无法垂直调整它们的大小。但是,即使使用了这个小技巧,我仍然发现调整大小并不总是正常工作的。因此,我并不确定Qt是否真正支持使用停靠小部件的这种方式。

0
在Qt Designer中创建GUI并将其转换为ui文件后,在您的__init__调用脚本中添加一行代码。
self.ui.centralwidget.hide()

你可能需要检查一下你的中心窗口小部件是否被称为上述名称


0

删除所有对中央窗口小部件的引用:

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

运行 python3 main.py 应该可以得到您想要的行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接