我在尝试布局PyQt UI时遇到了困难。我有三个QDockWidget'物体,两个停靠在左侧,一个停靠在右侧。没有任何控件添加到其中任何一个(除了一些图像),该应用程序在首次启动时看起来如下:
然后我在左上角添加了几个按钮' QDockWidget'通过创建一个继承自' QWidget'如下:
class DataControls(QWidget):
def __init__(self, parent=None):
super(DataControls, self).__init__(parent)
self.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
overallVerticalLayout = QVBoxLayout()
button1 = QPushButton("Button 1...", self)
button2 = QPushButton("Button 2...", self)
horizontalSubLayout1 = QHBoxLayout()
horizontalSubLayout1.addWidget(button1)
horizontalSubLayout1.addWidget(button2)
horizontalSubLayout1.addStretch(1)
overallVerticalLayout.addLayout(horizontalSubLayout1)
self.setLayout(overallVerticalLayout)
def sizeHint(self):
# Return an arbitrary preferred size for testing:
return QSize(500, 100)
然后我将此小部件分配给停靠小部件:
myDockWidget.setWidget(DataControls(self))
以上代码生成以下内容:
为什么会添加如此大量的空白空间?我可以" addStretch()"然后将两个按钮移到顶部,但仍留有大量的空白。为什么这是摆脱它的正确方法?我希望我的QDockWidget能够根据它所包含的控件来调整自己的大小。谢谢。