2015-10-27 60 views
2

我有QDockWidget的问题。我使用的是Qt Designer,我想用一个dock-widgets构建一个应用程序,并且在属性上面有一个小栏。问题是,如果没有主QWidget,我无法构建应用程序(我的意思是只有 QDockWidgets)。没有中央部件的QDockWidget布局

这里是我的截图:

qtdesigner

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

+0

你可能有一个未使用的行中的centralWidget您的网格布局。清除布局并重新设置。这次确保你没有空行。如果我不得不猜测,你之前直接在mainwindow上有所有的按钮,留下7行。然后你将它们移到自己的小部件中?留下很多未使用的行,由底部的按钮覆盖... –

+0

我编辑了我的帖子和附加的屏幕链接以获得更好的质量。整个屏幕是3试图建立这个东西。并且不,按钮仅添加到QDocWidget中。有3个按钮来检查我可以展开多少QDocWidget。 QWidget - 负责这个空间是由Designer自动添加的。我已清理CentralWidget - 现在有红圈。结束它并没有隐藏,并且在调整大小后它正在扩展,但QDocWidget保持不变。我想反对:) –

+0

即使我试图拥有3个小工具。 Top,Left和Bottom与QWidget有空间。即使我设置了1x1像素宽度,它也会在Designer中展开! :) –

回答

1

这不能从Qt Designer中完成。但是,有一个Qt Forum Thread这表明可能有一种方法可以以编程方式执行它。

首先,您必须在Qt Designer中将主窗口dockNestingEnabled属性设置为true。然后,在创建UI之后,以编程方式删除中央小部件,然后删除,重新添加并重新显示所有的小部件。

当我测试这个时,我发现我需要用单次计时器显示dock-widgets,否则我无法垂直调整它们。然而,即使有那么一点点黑客,我仍然发现调整大小并不总是正常工作。所以我不相信Qt真的支持这种使用dock-widgets的方式。

+0

我会尽力写我的观察:)谢谢 –

1

可以使用setCentralWidget(0);

0

创造Qt设计GUI和翻译它ui_file后删除centralWidget。添加一行在您的通话__init___脚本:

self.ui.centralwidget.hide() 

您可能需要检查,如果你的中央物件被称为如上