我是新人,我从新的简单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,调整大小但没有任何反应。
答案 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)