2017-01-21 6 views
1

아래 코드는 GroupBox() 대화 상자와 동기화 된 단일 대화 상자를 만듭니다. 이것은 GroupBox의 기본 크기 조정 정책입니다. 이 정책을 변경하는 방법 GroupBox은 최대한 작은 공간 (영역)을 차지하며 수직으로 확장되지 않습니다. 그것을 성취하는 방법?QGroupBox 크기 조절 방법

enter image description here

from PyQt4 import QtCore, QtGui 
app = QtGui.QApplication([]) 

panel=QtGui.QDialog() 
panel.setLayout(QtGui.QVBoxLayout()) 

groupbox = QtGui.QGroupBox('Group Box') 
groupbox.setLayout(QtGui.QVBoxLayout()) 
panel.layout().addWidget(groupbox) 

for i in range(3): 
    row = QtGui.QHBoxLayout() 
    row.addWidget(QtGui.QLabel('Label')) 
    row.addWidget(QtGui.QLineEdit()) 
    row.addWidget(QtGui.QPushButton('Push Button')) 
    groupbox.layout().addLayout(row) 

panel.layout().addWidget(QtGui.QPushButton('Confirm')) 

panel.show() 
app.exec_() 
+0

수직 스페이서를 추가하기 위해 '확인 버튼 바로 앞에'(),(),. – 101

+0

그룹 박스 뒤에'panel.layout(). addStretch()'를 넣는다. – ekhumoro

답변

1

ekhumoro에 의해 가장 간단한 하나 : 두 번째 접근 방식은 우리가 대체뿐만 아니라 후 작동

enter image description here

from PyQt4 import QtCore, QtGui 
app = QtGui.QApplication([]) 

panel=QtGui.QDialog() 
panel.setLayout(QtGui.QVBoxLayout()) 

groupbox = QtGui.QGroupBox('Group Box') 
groupbox.setLayout(QtGui.QVBoxLayout()) 
panel.layout().addWidget(groupbox) 
panel.layout().addStretch() 

for i in range(3): 
    row = QtGui.QHBoxLayout() 
    row.addWidget(QtGui.QLabel('Label')) 
    row.addWidget(QtGui.QLineEdit()) 
    row.addWidget(QtGui.QPushButton('Push Button')) 
    groupbox.layout().addLayout(row) 

panel.layout().addWidget(QtGui.QPushButton('Confirm')) 

panel.show() 
app.exec_() 

.addWidget.addItem과 :

from PyQt4 import QtCore, QtGui 
app = QtGui.QApplication([]) 

panel=QtGui.QDialog() 
panel.setLayout(QtGui.QVBoxLayout()) 

groupbox = QtGui.QGroupBox('Group Box') 
groupbox.setLayout(QtGui.QVBoxLayout()) 
panel.layout().addWidget(groupbox) 
panel.layout().addItem(QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)) 
for i in range(3): 
    row = QtGui.QHBoxLayout() 
    row.addWidget(QtGui.QLabel('Label')) 
    row.addWidget(QtGui.QLineEdit()) 
    row.addWidget(QtGui.QPushButton('Push Button')) 
    groupbox.layout().addLayout(row) 

panel.layout().addWidget(QtGui.QPushButton('Confirm')) 

panel.show() 
app.exec_() 
+0

가장 우수한 해결책 :) – ekhumoro