无法在PyQt用户界面

时间:2017-06-27 19:30:07

标签: python pyqt pyqt4

我在尝试布局PyQt UI时遇到了困难。我有三个QDockWidget'物体,两个停靠在左侧,一个停靠在右侧。没有任何控件添加到其中任何一个(除了一些图像),该应用程序在首次启动时看起来如下:

enter image description here

然后我在左上角添加了几个按钮' 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))

以上代码生成以下内容:

enter image description here

为什么会添加如此大量的空白空间?我可以" addStretch()"然后将两个按钮移到顶部,但仍留有大量的空白。为什么这是摆脱它的正确方法?我希望我的QDockWidget能够根据它所包含的控件来调整自己的大小。谢谢。

0 个答案:

没有答案