设置QGroupbox的大小?

时间:2014-12-01 10:51:34

标签: python python-2.7 python-3.x pyside

我是新人,我从新的简单GUI应用程序开始,我在互联网上关注一些教程,现在我遇到了QGroupbox(Pysde)的问题。 这是我的代码:

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide import QtGui,QtCore

class Form(QtGui.QWidget):

    def __init__(self,parent=None):
        super(Form,self).__init__(parent)

        self.initUi()

    def initUi(self):
        self.setGeometry(300, 300, 800, 600)
        self.setWindowTitle('Library')
        self.setMinimumHeight(600)
        self.setMinimumWidth(800)
        self.setMaximumHeight(600)
        self.setMaximumWidth(1100)

        #Groupbox Show Only
        gpShowonly = QtGui.QGroupBox("Show only :")
        gpShowonly.setGeometry(100,100,200,200)
        chbx1 = QtGui.QCheckBox("x1")
        chbx2 = QtGui.QCheckBox("x2")
        chbx3 = QtGui.QCheckBox("x3")

        serverlayout = QtGui.QHBoxLayout()

        serverlayout.addWidget(chbx1)
        serverlayout.addWidget(chbx2)
        serverlayout.addWidget(chbx3)

        configLayout = QtGui.QVBoxLayout()

        configLayout.addLayout((serverlayout))
        gpShowonly.setLayout(configLayout)

        mainLayout = QtGui.QVBoxLayout()
        mainLayout.addWidget(gpShowonly)
        mainLayout.addStretch(1)


        self.setLayout(mainLayout)
        self.show()

app = QApplication.instance()
if app is None:
    app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()

我希望它更小但它总是完全水平,我使用setGeometry,调整大小但没有任何反应。

1 个答案:

答案 0 :(得分:1)

布局中的小部件将展开以填充可用空间。为了防止这种情况,只需在布局的末尾添加一个可扩展的垫片:

    serverlayout = QtGui.QHBoxLayout()
    serverlayout.addWidget(chbx1)
    serverlayout.addWidget(chbx2)
    serverlayout.addWidget(chbx3)
    serverlayout.addStretch()

如果这会使小部件太小,您可以给它们一个最小宽度:

    for widget in chbx1, chbx2, chbx3:
        widget.setMinimumWidth(100)